| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1880 人关注过本帖
标题:[求助]重载构造函数~
只看楼主 加入收藏
六道
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-28
收藏
 问题点数:0 回复次数:15 
[求助]重载构造函数~

#include<iostream.h>
class Tdate
{
public:
Tdate(){init(4,15,1995);}
Tdate(int d){init(4,d,1996);}
Tdate(int m,int d){init(m,d,1997);}
Tdate(int m, int d,int y){init(m,d,y);}

protected:
int month;
int day;
int year;

void init(int m,int d,int y)
{
month=m;
day=d;
year=y;
cout<<month<<"/"<<day<<"/"<<year<<endl;
}
};

void main()
{
Tdate aday;
Tdate bday(10);
Tdate cday(1,12);
Tdate dday(1,2,1998);
}


红色部分因为上面类定义的时候虽没参数,但有括号,这里为何不加括号?一加括号就不输出~

搜索更多相关主题的帖子: int STRONG 函数 构造 Tdate 
2007-10-25 17:33
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
Tdate()是无参构造函数,函数当然要有个括号

Tdate aday;这样是定义了一个Tdate类型的变量,名字叫aday,变量怎么能加括号呢?

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-25 17:56
xskowscut
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-10-13
收藏
得分:0 
本身如果没有重载构造函数的话,声明对象就是这样写的啊,不用带括号,因为没有参数传递。

希望能够跟大家学习!交流编程经验!
2007-10-25 18:02
travelling
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-10-22
收藏
得分:0 
  我看了一下书,书上说如果加上括号,那就表明你是在对名为aday函数的声明,该函数不接受任何参数,并返回一个类型为Tdate的值。而你此时在调用无参构造函数,所以不加括号。  不知道我讲得对不对,若不对请不要怪我,我也刚开始学C++。
2007-10-25 18:06
六道
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-28
收藏
得分:0 
回复:(xskowscut)本身如果没有重载构造函数的话,声...
恩,前面调用无参构造函数也不用的,头昏了,现在知道了~~

谢谢大家~

★孤独的人是可耻的★
2007-10-25 18:27
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
以下是引用travelling在2007-10-25 18:06:51的发言:
我看了一下书,书上说如果加上括号,那就表明你是在对名为aday函数的声明,该函数不接受任何参数,并返回一个类型为Tdate的值。而你此时在调用无参构造函数,所以不加括号。 不知道我讲得对不对,若不对请不要怪我,我也刚开始学C++。

对的,可以这么理解


从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-25 18:37
neufcl
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2007-10-23
收藏
得分:0 

学好C++
2007-10-25 21:01
yanyananlin
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-10-21
收藏
得分:0 

用protected可以代替private吗?

[此贴子已经被作者于2007-10-25 21:40:19编辑过]

2007-10-25 21:38
六道
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-28
收藏
得分:0 
回复:(yanyananlin)用protected可以代替private吗?...

这里应该是可以的,他们的区分主要体现在类的继承中.


★孤独的人是可耻的★
2007-10-25 22:40
yanyananlin
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-10-21
收藏
得分:0 

哦,谢谢,那在类的继承中有什么区别啊?可以具体说说吗?

2007-10-26 22:11
快速回复:[求助]重载构造函数~
数据加载中...
 
   



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

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