C++中一个危险的地方

    技术2024-07-22  64

    以下程序可以编译并运行,不过加上注释的那几行就编译不过。。不解释了。。

    经过g++ 4.4.3 和 g++ 3.3.6测试

    #include <cstdio> class X { public: X() : m_id(m_tot_id ++) { printf("X #%d constructed./n", m_id); } ~X() { printf("X #%d destructed./n", m_id); } void show_id() const { printf("my id is %d/n", m_id); } private: static int m_tot_id; int m_id; }; int X::m_tot_id; class Saver { const X &x; public: Saver(const X &x_) : x(x_) {} void show_x_id() {x.show_id();} }; int main() { Saver *ptr = new Saver(X()); ptr->show_x_id(); // Saver s(X()); // s.show_x_id(); // X &x = X(); printf("hello, world/n"); }  

     

     

    最新回复(0)