| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 973 人关注过本帖
标题:默认构造函数
只看楼主 加入收藏
zjdxsunyan
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2011-4-10
结帖率:85.71%
收藏
已结贴  问题点数:10 回复次数:13 
默认构造函数
#include<iostream>
using namespace std;

class complex
{
public:
    double real,imag;
    complex(double r,double i)
    {
        real=r;
        imag=i;
    }
    complex()
    {
    }
};
complex operator+(complex com1,complex com2)
{
    complex temp;
    temp.real=com1.real+com2.real;
    temp.imag=com1.imag+com2.imag;
    return temp;
}
void main()
{
    complex com1(1.1,2.2),com2(3.3,4.4),total1,total2;
    total1=com1+com2;
    total2=operator+(com1,com2);
    cout<<"rea1="<<total1.real<<" imag1="<<total1.imag<<endl;
    cout<<"rea2="<<total2.real<<" imag2="<<total2.imag<<endl;
}
上面的代码是能够通过的,可我不知道为什么需要写一个默认的无参数的构造函数。
搜索更多相关主题的帖子: return 
2011-04-16 17:09
ljt
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:191
专家分:431
注 册:2009-4-6
收藏
得分:1 
不用啊,编译器都会自己弄个默认的构造函数
2011-04-16 21:01
zjdxsunyan
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2011-4-10
收藏
得分:0 
但是如果去掉那个无参的构造函数会出错。
2011-04-16 21:30
bccn250
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:379
注 册:2010-5-25
收藏
得分:1 
我翻了一下前几天刚刚下载的 C++ Primer 电子书326页--原文311页

书里也只说:“奇怪的是。。。。”
2011-04-16 23:20
詹曦
Rank: 3Rank: 3
来 自:广东惠来
等 级:论坛游侠
帖 子:5
专家分:111
注 册:2010-10-2
收藏
得分:1 
回复 楼主 zjdxsunyan
系统自动生成缺省构造函数(空构造函数)的条件是,类里面没有构造函数!若不想写缺省构造函数,且只写一个构造函数时,只需构数的所有参数都赋个初值即可。
参考模式如下:
complex(double r=0,double i=0)
    {
        real=r;
        imag=i;
    }
2011-04-16 23:43
zjdxsunyan
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2011-4-10
收藏
得分:0 
回复 5楼 詹曦
恩,谢谢你,这样可以正确编译运行。但你能说说做为什么能这样做呢?
2011-04-17 07:41
守墨
Rank: 1
等 级:新手上路
帖 子:5
专家分:1
注 册:2011-4-15
收藏
得分:1 
上面就相当于一个构造函数吗。
2011-04-17 09:19
守墨
Rank: 1
等 级:新手上路
帖 子:5
专家分:1
注 册:2011-4-15
收藏
得分:0 
默认的
2011-04-17 09:29
城东古桥
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:31
专家分:101
注 册:2010-9-13
收藏
得分:1 
如果你自己定义了构造函数,系统将不再生成默认构造函数,如果需要默认构造函数需要显式定义,5楼那就是合成默认构造函数

来此寻求
2011-04-17 10:15
zjdxsunyan
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2011-4-10
收藏
得分:0 
感谢各位热心的人。结贴时散分,哈哈!
2011-04-17 10:28
快速回复:默认构造函数
数据加载中...
 
   



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

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