-1
我已经创建了一个类并通过构造函数初始化了一个对象数组,为什么或者为什么不在这里调用复制构造函数呢?它是复制elision?[问题]为什么复制构造函数没有被调用
#include<iostream>
#include<stdio.h>
class ABC
{
int x, y;
public:
ABC()
{
x = 0;
y = 0;
}
ABC(int a,int b)
{
x = a;
y = b;
}
ABC(const ABC &obj)
{
std::cout<<"Copy called";
}
};
int main()
{
ABC obj[2] = {ABC(), ABC(5,6)}; //copy elision or copy constructor?
}
请提供一个编译代码...您缺少标题,所有的构造函数都是私有的。 – Holt
是的,这是由于copy-elision,如果您使用的是clang或g ++,请尝试使用'-fno-elide-constructors'进行编译。 – Holt
可能重复[什么是复制elision和返回值优化?](http://stackoverflow.com/questions/12953127/what-are-copy-elision-and-return-value-optimization) – Holt