|
发表于 2003-6-28 04:14:53
|
显示全部楼层
- #include <iostream>
- using namespace std;
- class A{
- public:
- void print(void){cout << "haha " << i << endl;}
- int i;
- };
- int
- main(void)
- {
- A *x;
- x->print();
- return(0);
- }
复制代码
这个程序编译不会报错,执行也照样正确。
对象在内存里主要包含了数据成员,成员函数并不包含在对象占用的内存里,声明10个对象,成员函数还是只有一个,就算没有为x分配地址,print函数是存在的,而且也没什么问题,但是i就不行了,因为x可能指向任何地方,所以i也是,读i一般不会出现问题(也应该算是错误),写一般就会出现内存存取错误。
总之,虽然上面这个程序能用,但是不分配内存是个错误,要是不注意的话迟早被指针扎一下。 |
|