C++ 封装只能防止无意识的越权访问

来源:互联网 发布:2016年的网络流行语 编辑:程序博客网 时间:2024/06/05 21:04

1. 本身不具备严格的权限控制机制

比如public 函数成员返回私有成员或保护成员的地址:

示例代码:

#include <iostream>class A{int a;public:A (int x){ a =x;};int *addr(){ return &a; };void prin_a( ){ printf("%d\n", a); };};int main(){    A a(3);a.prin_a();int *p =a.addr();*p =6;a.prin_a();std::cout <<"return\n";    return 0;}

结果:



2.强制类型转换

示例代码:

#include <iostream>class A{char password[10];public:A (){ std::cin >>password; };};struct B{char password[10];};int main(){    A a;B *pb =(B *)&a;std::cout <<'\n' <<pb->password;    return 0;}<strong></strong>

结果:


0 0
原创粉丝点击