类的私有成员到底能不能被继承
时间:2011-12-07
来源:互联网
书上又说:直接基类的私有成员也会被继承,但派生类不能直接访问直接基类的私有成员。
到底怎么回事啊,郁闷
作者: onezzx2234 发布时间: 2011-12-07
派生类不能访问基类的私有成员,因为基类的私有成员只能在基类内部使用。出了基类的作用域就不能被访问了。
作者: pqpqr 发布时间: 2011-12-07
直接基类的私有成员也会被继承,但派生类不能直接访问直接基类的私有成员。
保护成员和私有成员的区别在于前者能被继承,而且能直接访问。
作者: xxg1413 发布时间: 2011-12-07
下例的B和A一样大,因为m也在B里,只是不能访问
C/C++ code
class A { private: char m[5]; }; class B: public A { }; int main() { cout <<sizeof(B) <<endl; return 0; }
作者: yisikaipu 发布时间: 2011-12-07
作者: Demon__Hunter 发布时间: 2011-12-07
基类的保护成员可以被派生类的成员函数访问,而基类的私有成员不能被派生类的成员函数访问
这么理解对吗?
作者: onezzx2234 发布时间: 2011-12-07
作者: zzcmx2008 发布时间: 2011-12-07
作者: zzcmx2008 发布时间: 2011-12-07
#include <iostream> #include <string.h> using namespace std; class base { public: base(){} base(int a,int b):id(a),num(b){} virtual ~base(){} void fun1(){} protected: int id; private: int num; }; class derived:public base { public: derived(){} derived(int a,int b,string s):base(a,b),name(s){} void fun2(){id = 5;}//OK derived class member can access the protected member in the base class void fun4(derived &md) { md.id = 77; } //void fun3(){num = 10;}//error int base::num is private private: string name; }; int main() { //public inheritance means is-a //every derived class object has a copy of base class //so: derived md1; base mb1; mb1 = md1;//here we can know derived class inherit every thing from the base class; return 0; }
作者: qscool1987 发布时间: 2011-12-07
2.public protected private访问权限是针对任何其他代码访问本类成员的权限,继承也不例外,子类访问基类的东西也要视访问权限而定
3.在继承环境里public和protected等价,在非继承环境里如组合模式下protected和private等价
4.基类private成员可以通过基类public或子类protected或友元函数访问
作者: stendson 发布时间: 2011-12-07
私有成员能被继承。
派生类不能访问基类的私有成员,因为基类的私有成员只能在基类内部使用。出了基类的作用域就不能被访问了。
sp........
作者: skyworth98 发布时间: 2011-12-07
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28