新微赢技术网

标题: 关于有默认参数的构造函数 [打印本页]

作者: ︷起↘嚸℡    时间: 2009-11-5 01:06
标题: 关于有默认参数的构造函数
一个简单的例子:

#include <iostream>
#include <string>
using namespace std;
class Student
{
public:
Student(int n=01,string nam="vivi",char s='f'){num=n;name=nam;sex=s;} //基类构造函数;
void display()
{
cout<<"num:"<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"sex:"<<sex<<endl;
}
protected:
int num;
string name;
char sex;
};
class Student1: public Student
{
public:
Student1(int a=24,string add="xxxxxxxxxxxx"){age=a;addr=add;} //派生类构造函数;
void display_1()
{ cout<<"num:"<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"sex:"<<sex<<endl;
cout<<"age:"<<age<<endl;
cout<<"address:"<<addr<<endl;
}
private:
int age;
string addr;
};
int main()
{
Student1 stud;
stud.display_1();
return 0;
}



请问:

在用派生类Student1建立对象时,使用的是默认参数的构造函数,根据派生类构造函数的定义,应该只对age和addr赋值,并没有调用基类的构造函数,为什么输入出时,从基类继承下来的那些数据成员也赋上默认值了呢?

新手,请赐教!
作者: ︶ㄣlоve_    时间: 2009-11-5 01:06
明白了,派生类会自动调用基类的构造函数.




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2