Download presentation
Presentation is loading. Please wait.
Published byIwan Hermanto Modified 5年之前
1
本节内容 类成员的访问控制 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
2
1、定义与实现分开 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864
<1> 代码会有更好的可读性 <2> 但不是必须的
3
2、public与private的使用 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864
4
3、private真的不能访问吗? 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864
struct Test { private: int x; public: int y; void Init(int x,int y) this->x = x; this->y = y; } }; Test t; t.Init(1,2); int* p = (int*)&t; int n = *p; int m = *(p+1); printf("%d %d\n",n,m); 总结: private修饰的成员与普通的成员没有区别 只是编译器会检测。 private修饰的成员只要自己的其他成员才能访问。
5
4、class与struct的区别: 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864
class Base { int x; int y; }; int main(int argc, char* argv[]) Base base; base.x = 10; base.y = 20; return 0; } class与struct的区别: 编译器默认class中的成员为private 而struct中的成员为public
6
5、继承中时的区别: 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 class Base {
public: int x; int y; }; class Sub:Base int a; int b; class Sub:private Base { public: int a; int b; }; int main(int argc, char* argv[]) { Sub sub; sub.x = 1; //无法访问 sub.y = 2; //无法访问 sub.a = 3; sub.b = 4; return 0; }
7
6、private成员是否被继承? 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864
class Base { public: Base() x = 11; y = 12; } private: int x; int y; }; class Sub:Base int a; int b; 总结: 1、父类中的私有成员是会被继承的 2、只是编译器不允许直接进行访问 int main(int argc, char* argv[]) { Sub sub; sub.a = 1; sub.b = 2; int* p = (int*)⊂ printf("%d\n",sizeof(sub)); printf("%d\n",*(p+0)); printf("%d\n",*(p+1)); printf("%d\n",*(p+2)); printf("%d\n",*(p+3)); return 0; }
8
<汇编、C/C++线上班>学员可见
昆山爱达人信息技术有限公司 QQ: 课后练习: <汇编、C/C++线上班>学员可见
Similar presentations