构造函数和初始化的有关问题
构造函数和初始化的问题C/C++ code#includeiostream#includeStringusing namespace stdclass date{pu
构造函数和初始化的问题
C/C++ code#include<iostream>#include<String>using namespace std;class date{public: date(){cout<<"date()"<<endl;} date(string s){time=s;cout<<"date-time="+time<<endl;}protected: string time;};class calendar{public: calendar(){cout<<"calendar()"<<endl;}protected: date datea; date da("ss");//这一行问什么报错?};void main(){ calendar ca1; string s("ss"); date da("ss");//这一样卫矛不报错? cout<<s<<endl;}
[解决办法] date da("ss");//这一行问什么报错?
不能写在class声明的地方,只能写在函数体里面。
[解决办法]class calendar{
...
protected:
date datea;
date da("ss");//这一行问什么报错?
};
这是calendar的类定义,不能在类定义里面直接初始化 数据成员。
可以在构造函数里面初始化,或者暴露一个public方法给用户设置。
[解决办法]declare define implement
[解决办法]protected:
date datea;
date da("ss");//这一行问什么报错?
// 不可以在这里初始化,类成员的初始化有几个地方,普通成员的初始化要在类的初始化列表里进行。
};
[解决办法]类定义中的成员变量不能用带参构造函数构造对象。