| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 584 人关注过本帖
标题:构造函数
取消只看楼主 加入收藏
jjg
Rank: 2
等 级:论坛游民
帖 子:67
专家分:42
注 册:2009-8-19
结帖率:46.15%
收藏
已结贴  问题点数:10 回复次数:1 
构造函数
1.语句myclass a[3],*p[2]调用了几次构造函数?是三次怎么来的?
2.
#include <iostream.h>
#include <string.h>
class student
{
public:
student(char* pname="no name",int ssid=0)
{
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,"copy of");
id=s.id;
}
~student()
{
cout<<"destructing"<<name<<endl;
}
protected:
char name[40];
int id;
};
void fn(student s)
{
cout<<"in function fn()\n";
}
void main()
{
student randy("Randy",1234);
cout<<"calling fn()\n";
fn(randy);
cout<<"returned from fn()\n";
}
问题:
<1> randy对象的创建不也是Randy传给了pname为什么不是调用拷贝构造函数?到底什么时候调用拷贝构造函数,什么时候调用构造函数?
<2> 为什么用char* pname="no name"这个表示方法,如果我直接用char* pname是不是 有错?char pname呢,用char pname是不是因为传递的是一个复制了的局部对象,起不到真正复制的效果?谁能给我解答一下,谢谢了.

[ 本帖最后由 jjg 于 2009-8-19 16:28 编辑 ]
搜索更多相关主题的帖子: 构造 函数 
2009-08-19 09:47
jjg
Rank: 2
等 级:论坛游民
帖 子:67
专家分:42
注 册:2009-8-19
收藏
得分:0 
回复 5楼 ly861014
我打错了,我从新编辑一下
2009-08-19 16:13
快速回复:构造函数
数据加载中...
 
   



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

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