在windows下,能够定义一个类的空指针并且能够用这个空指针调用类的成员函数(但成员函数访问类的成员变量就会出问题)
如:
定义类:
-
class Person{
-
private:
-
int a;
-
public:
-
Person(){}
-
~Person(){}
-
void showInt(){
-
std::cout<<"this is a test!"<
-
}
-
};
这个类在windows下可以这样使用:
Person *p = NULL:
p->showInt();
当然,在gcc中这是不可以的,这样往往会导致段错误。
但在windows下却可行,原因主要还是两种编译器处理方式不同,应该是对this指针的处理方式不同。
需要注意的是,当showInt()访问成员变量时,在vs2010下也能够编译运行,并不提示任何错误,但是程序执行到这个地方时,会退出,放弃执行后续的代码。
阅读(3608) | 评论(2) | 转发(0) |