#include <iostream>
#include <string>
using namespace std;
class A
{
public:
A() { i=1; j=2;};
A (A &obj) { i= obj.i+100; j= obj.j+100;};
int i;
int j;
};
class B:public A
{
public:
B():A() {i=10; j=20; k=30;};
B(A &obj) { A::A(obj); k=10000; };//
int k;
};
int main()
{
A dog;
B mouse(dog);
cout<<mouse.i<<endl;
cout<<mouse.k<<endl;
return 0;
}
基本クラスのコピー コンストラクターを利用する派生クラスのコピー コンストラクターを作成しようとしています。これはmouse.i
101 になるはずですが、実際にはコンパイル結果は 1 ですmouse.k
。私のコードの何が問題なのか疑問に思っていました。