#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;
}
Base val是在派生类终生定义的也可以吗? 还有基类的构造函数(函数体)是什么呀?
谢谢了
可以定义的,基类的构造函数(函数体)就是Base(int x=0) {cout<<x;}
追问那为什么d(1)中的实参没有传递到Base(int x=0) {cout<<x;}
中的x呀?
谢谢
你没有初始化Base(int x=0)构造函数,Derived(int x=0):Base(x) {cout<<x;}这样就传递了
追问怎么样才能实现d(1)中的实参传递到Base(int x=0) {cout<<x;}
中的x呀,是通过指针吗?
谢谢哦。
你要初始化基类的构造函数呀,这样就传递咯,声明对象或指针都可以啊,刚不是说了吗
Derived(int x=0):Base(x) {cout<<x;}这样就初始化了基类构造函数的形参了,和你刚写的那个构造函数不一样吧 Derived(int x=0) {cout<<x;}