到底有多少个对象,先填坑再说

看题说话

  test a();
        test b(2);
        test c[3];
        test &ra = b;
        test d = b;
        test pA = c;
        test p = new test(4);

 到底产生了多少个对象,我也是好奇这道题考察的是什么?因为这里面不是简单的考察构造函数和拷贝构造函数,还捎带了俩坑让面试者填。

坑1:

test pA = c;编译错误,c是数组名,正确的使用方式是test pA = c[0];或者test *pA = c;从命名意图pA来看,后者应该是正确的写法。

坑2:

test p = new test(4);这个很明显,p应该是一个指针。

填坑以后的题目是这样的:

        test a();
        test b(2);
        test c[3];
        test &ra = b;
        test d = b;
        test *pA = c;
        test* p = new test(4);

 现在还是有坑

填坑:

test a();这个是对象吗?如果把test换成int,  int  a();  看明白了吗,这是一个函数声明,WTF。

正确结果:6个。 

原文地址:https://www.cnblogs.com/learn-my-life/p/5252884.html