c++对象实例化问题

#include <iostream>
#include <stdio.h>

using namespace std;

class A {

public:
    void test_echo() {
        printf("%d", 123);
    }
};


int main() {
    cout  << "test\n";
    A *pA = NULL;
    pA->test_echo();
    return 0;
}

以上代码执行后,会正常输出123,因为:

  • 此处printf的输出没有用到this,所以不会引起segment fault.
  • c++在编译时,除了虚函数外,会将一切可编译处理的都编译掉,虽然pA被赋值了NULL,但在编译阶段
    只会检测pAA类中的test_echo方法,静态绑定此方法,不像java,python在动态执行时才绑定NULL
  • 参考:http://m.nowcoder.com/questions?uuid=2c126b876d714f4eb3be3de7dbf700e9
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容