| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 501 人关注过本帖
标题:[求助]关于构造函数的问题?
只看楼主 加入收藏
ar7043
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-8-15
收藏
 问题点数:0 回复次数:2 
[求助]关于构造函数的问题?
#include<iostream>
using namespace std;
class StudentID{
   int value;
public:
   StudentID(int id=0){
      value=id;
      cout<<"Assigning student id "<<vallue<<"\n";
 } 
};

class Student {
   string name;
   StudentID id;
public:
    Student(string n="noName", int ssID=0){
       cout<<"Constructing student "+n+"\n";
       name=n;
       StudentID id(ssID);
   } 
};
int main()
{Student s("Randy",58);
}
为什么StudentID构造函数却没有输出58?而是默认的0

搜索更多相关主题的帖子: 函数 构造 
2006-10-30 23:50
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
StudentID这里有两个对象,一个是Student的数据成员,另外一个是构造函数中声明的一个临时对象,数据成员你并没有在前导中给他指定参数,那么他就是用默认参数0

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-10-31 07:49
gaoluxin
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-10-26
收藏
得分:0 

我调了一下:输出如下:

Assigning student id 0

Constructing student Randy

Assigning student id 58

解释如下:

studentID作为student类的一个成员函数,在student构造函数调用之前调用,因此会输出第一行文字,紧接着是studentID的构造函数。

2006-10-31 16:57
快速回复:[求助]关于构造函数的问题?
数据加载中...
 
   



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

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