看题说话
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个。