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

是不是带参数的构造函数的声明只能在.h中啊,比如
class jose
{ public:
jose(int i=1,int n=3)
...............
protected:
int interval;
int number;
}

jose::jose(int i=1int n=3)
{
interval=i;
number=n;
}


这可以么,谢谢回答:)不对的话,怎么改进呢:)

搜索更多相关主题的帖子: 构造函数 参数 jose int number 
2006-02-06 16:58
karlzhouzhi
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2005-12-25
收藏
得分:0 
问题 没解决
还是不行:)
2006-02-07 15:46
karlzhouzhi
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2005-12-25
收藏
得分:0 

好像带参数的构造函数定义都在*.h中定义,而不能在*.cpp中定义。(*.h代表类定义,*.cpp代表定义类中成员函数的C++ source file)。比如:
#include <iostream.h>
#include<string.h>

class student
{
public:
student(char *pName="no name",int ssid=0) //书上好像都没有把这种带参数的构造函数在另外的文件(以*.h表示)中定义,都是在类(以*.cpp表示)中定义的。
{
id=ssid;
strcpy(name,pName);
cout<<"constructing new student "<<pName<<endl;
}

student(student &s)
{
cout<<"constructing copy of "<<s.name<<endl;
strcpy(name,"copy of ");
strcat(name,s.name);
id=s.id;
}
~student()
{
cout<<"destructing "<<name<<endl;
}
protected:
char name[40];
int id;
};

void fn(student s)
{
cout<<"In function fn()"<<endl;
}
void main()
{
student randy("randy",1234);
cout<<"calling fn()"<<endl;
fn(randy);
cout<<"returned from fn()"<<endl;
}

2006-02-07 21:32
karlzhouzhi
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2005-12-25
收藏
得分:0 

问题解决了,谢谢:)

2006-02-08 15:11
快速回复:关于带参数的构造函数
数据加载中...
 
   



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

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