本节内容 类成员的访问控制 视频提供:昆山爱达人信息技术有限公司 官网地址:www.bcdaren.com 联系QQ:1250121864 QQ交流群 :49759272 联系电话:0512-57882866
1、定义与实现分开 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 <1> 代码会有更好的可读性 <2> 但不是必须的
2、public与private的使用 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864
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修饰的成员只要自己的其他成员才能访问。
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
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; }
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; }
<汇编、C/C++线上班>学员可见 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 课后练习: <汇编、C/C++线上班>学员可见