-1
コンストラクタを使用してクラスを作成し、オブジェクトの配列を初期化しました。なぜコピーコンストラクタが呼び出されないのですか?それは溶出をコピーしていますか?[Prob]コピーコンストラクタが呼び出されない理由
#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
[コピーエリッションと戻り値の最適化とは何ですか?]の複製がありますか?(http://stackoverflow.com/questions/12953127/what-are-copy-elision-and-return-value-optimization) – Holt