关于windows下vs2010能够定义一个类的空指针并且能够调用类的成员函数说明

3600阅读 2评论2013-12-30 ygfinsight
分类:C/C++

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

                 
                                                                     
上一篇:win7 下开发node.js c++ addon
下一篇:node libuv异步多线程使用初窥

文章评论