#include <iostream>
using namespace std;
class A
{
public:
int a;
A(int a)
{
this->a = a;
cout << "A有参构造" << endl;
}
};
class B:virtual public A
{
public:
int b;
B(int b):A(1)
{
this->b = b;
cout << "B有参构造" << endl;
}
};
class C:virtual public A
{
public:
int c;
C(int c): A(1)
{
this->c = c;
cout << "C有参构造" <<endl;
}
};
class D:public B,public C
{
public:
int d;
D(int d):B(4),C(5),A(1)
{
this->d = d;
cout << "D有参构造" << endl;
}
};
int main()
{
D d(5);
return 0;
}
class Father
{
int* p;
const string name;
public:
Father() :p(new int(0)),name("biu") {}
Father(int p,const string name):p(new int(p)),name(name){}
~Father() { delete p; }
Father(const Father& other):name(other.name)
{
this->p = new int;
}
Father& operator=(const Father& other)
{
*(this->p) = *(other.p);
return *this;
}
};
class Son :public Father
{
int* age;
public:
Son() :age(new int(19)) {}
Son(int age) :age(new int(age)) {}
~Son() { delete age; }
Son(const Son& other)
{
this->age = new int;
*(this->age) = *(other.age);
}
Son& operator=(const Son& other)
{
*(this->age) = *(other.age);
}
};
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_57107322/article/details/137255095