我创建了一个类并通过构造函数初始化了一个对象数组,为什么或为什么不在这里调用复制构造函数?是复制省吗?
#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?
}
答案 0 :(得分:0)
你是对的,它的复制省略,编译器进行优化并创建对象代替数组中分配的内存,因此复制构造函数不会被调用。