关于C++的:定义一个基类A,派生类B(class B:public class A )。类B中有
关于C++的:定义一个基类A,派生类B(classB:publicclassA)。类B中有拷贝构造函数,请问classB(B&b1)和classB(B&b1):A(b1)...
关于C++的:定义一个基类A,派生类B(class B:public class A )。类B中有拷贝构造函数,请问class B(B&b1)和class B(B&b1):A(b1)的区别是什么?
展开
4个回答
展开全部
第一个调用A的默认拷贝函数,第二个是赋值,把B赋值给A,在此之前,A已经经历了一次初始化了。所以这里是赋值
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
class A
{
public:
A() = default;
A(const A& a) = default; //等价于注释掉的下句
//A(const A& a){this->a = a.a};
private:
int a;
}
class B:public A
{
public:
B() = default;
B(const B& b):A(b) //A(b)调用基类复制构造,下面不用再写this->a = b.a了
{
this->b = b.b;
}
private:
int b;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
class B(B&b1):A(b1) 调用了父类的构造函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
后者试图把B类对象的引用给类A的构造函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询