首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

能不能在成员函数中定义类的变量?解决方案

2012-03-20 
能不能在成员函数中定义类的变量?cls1::func1(){int this-intCount1//就是定义类的成员变量int intCount

能不能在成员函数中定义类的变量?
cls1::func1(){
  int this->intCount1; //就是定义类的成员变量
  int intCount2;
};



[解决办法]
C\C++编译器要明确知道类型的大小才可以为其分配内存。
你先假设你这样声明的是可以的,那么这个函数的效果是为本类对象额外添加一个4字节空间。
而我们知道C\C++编译器为数组分配连续的线性地址空间。
这就意味着当编译器使用你的这种声明方式时,实例化的对象内存是不可控的。
数组中的成员一旦调用cls1::func1()函数,那么本例对象的便会增大。
这就会造每个cls1对象寻址intCount1时,都会越界使用到第二个(甚至更多)cls1对象的地址空间内。
这样一来数据的安全便一点保障都没有了。
所以,不可能有这种形式的声明。

热点排行