| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 402 人关注过本帖
标题:一个错误的程序
只看楼主 加入收藏
银魂飞雪
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-10-23
收藏
 问题点数:0 回复次数:1 
一个错误的程序

请问下面的程序哪个地方错了
谢谢
#include<iostream>
using namespace std;

template <class T>
class complex_basic
{
T n1;
T n2;
public:
complex_basic(){}
complex_basic(T _n1,T _n2)
{
n1=_n1;
n2=_n2;
}
friend ostream & operator << (ostream & out,complex_basic<T> t);
};

template <class T>
ostream & operator << (ostream & out,complex_basic<T> t)
{
if(t.n2==0)
{
out<<t.n1;
}
else if(t.n2>0)
{
out<<t.n1<<'+'<<t.n2<<'i';
}
else
{
out<<t.n1<<'-'<<t.n2<<'i';
}
return out;
}

void main()
{
complex_basic <int> a(5,0);
cout<<a;
}

2006-11-27 17:11
litcatyx
Rank: 1
等 级:新手上路
威 望:1
帖 子:151
专家分:0
注 册:2006-10-27
收藏
得分:0 
把friend ostream& operator<<(ostream& our,complex_basic<T> t);
改成template <class Elem> friend ostream & operator << (ostream & out,complex_basic<Elem> t);
因为,友元函数不是类的成员,不加template <class Elem>,operator <<就不是模板了

另外,当虚部小于0时,没必要多输出一个负号。


2006-11-27 17:58
快速回复:一个错误的程序
数据加载中...
 
   



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

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