私はC++プログラミングが初めてで、他の人たちと同じように、コピーコンストラクターの概念が少しおかしいと思います。
コピーコンストラクターは、既存のオブジェクトのコピーである新しいオブジェクトを作成し、それを効率的に行う特別な種類のコンストラクターです。
他のオブジェクトのコピーであるオブジェクトを作成するコードを書きましたが、結果が奇妙であることがわかりました。コードは次のとおりです。
#include <iostream>
using namespace std;
class box
{
public:
double getwidth();
box(double );
~box();
box(box &);
private:
double width;
};
box::box(double w)
{
cout<<"\n I'm inside the constructor ";
width=w;
}
box::box(box & a)
{
cout<<"\n Copy constructructor got activated ";
}
box::~box()
{
cout<<"\n I'm inside the desstructor ";
}
double box::getwidth()
{
return width;
}
int main()
{
box box1(10);
box box2(box1);
cout<<"\n calling getwidth from first object : " <<box1.getwidth();
cout<<"\n calling the getwidth from second object : " <<box2.getwidth();
}
以下のコードに従って box2.getwidth() を呼び出すと、ジャンク値が得られました。私の理解では、box2はbox1のコピーであるため、幅が10に初期化されることを期待していました。明確にしてください