| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 663 人关注过本帖
标题:关于有默认参数的构造函数
只看楼主 加入收藏
suizier
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-3-31
收藏
 问题点数:0 回复次数:1 
关于有默认参数的构造函数

一个简单的例子:

#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赋值,并没有调用基类的构造函数,为什么输入出时,从基类继承下来的那些数据成员也赋上默认值了呢?

新手,请赐教!


搜索更多相关主题的帖子: 构造函数 参数 num name 
2007-04-12 22:25
suizier
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-3-31
收藏
得分:0 
回复:(suizier)关于有默认参数的构造函数
明白了,派生类会自动调用基类的构造函数.
2007-04-13 13:04
快速回复:关于有默认参数的构造函数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037685 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved