
哪位C++高手帮帮忙?帮我看看下面这道题 由于我的C++水平很低,所以希望是详解答案 谢谢了。
#include<iostream>usingnamespacestd;classBase{public:Base(intx=0){cout<<x;}};classDer...
#include <iostream>
using namespace std;
class Base{
public:
Base(int x=0) {cout<<x;}
};
class Derived : public Base{
public:
Derived(int x=0) {cout<<x;}
private:
Base val;
};
int main(){
Derived d(1);
return 0;
} 展开
using namespace std;
class Base{
public:
Base(int x=0) {cout<<x;}
};
class Derived : public Base{
public:
Derived(int x=0) {cout<<x;}
private:
Base val;
};
int main(){
Derived d(1);
return 0;
} 展开
2个回答
展开全部
结果:001
Derived 继承Base,Derived d(1)先调用基类的构造函数,输出一个0,由于基类有一个 Base val的对象,又一次调用基类的构造函数,输出第二个0,最后调用 Derived(int x=0) {cout<<x;},输出1
继承关系的构造函数的调用顺序:先调用基类构造函数-》再调用派生类;析构函数则相反
Derived 继承Base,Derived d(1)先调用基类的构造函数,输出一个0,由于基类有一个 Base val的对象,又一次调用基类的构造函数,输出第二个0,最后调用 Derived(int x=0) {cout<<x;},输出1
继承关系的构造函数的调用顺序:先调用基类构造函数-》再调用派生类;析构函数则相反
更多追问追答
追问
Base val是在派生类终生定义的也可以吗? 还有基类的构造函数(函数体)是什么呀?
谢谢了
追答
可以定义的,基类的构造函数(函数体)就是Base(int x=0) {cout<<x;}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询