C++输入、输出 运算符重载问题!

//person.h头文件#ifndefPERSON_H#definePERSON_H#include<string>#include<iostream>usingnam... //person.h头文件
#ifndef PERSON_H
#define PERSON_H

#include<string>
#include<iostream>
using namespace std;
class person
{
string name;
int fenshu;

public:

friend istream & operator>>(istream &in,person & a);
friend ostream & operator<<(ostream & out, const person &a);
};

istream & operator>>(istream &in,person & a)
{
in>>a.name>>a.fenshu;
if(in)
cout<<"输入成功!"<<endl;
else
cout<<"输入失败!"<<endl;

return in;
}

ostream & operator<<(ostream & out, const person &a)
{
out<<a.name<<" "<<a.fenshu<<endl;
return out;
}
#endif

//main函数
#include "stdafx.h"
#include"person.h"
int _tmain(int argc, _TCHAR* argv[])
{
person aaa;
cin>>aaa;

cout<<aaa;
return 0;
}

这是在VS2010中的代码,总提示符号从定义错误;
1>person.obj : error LNK2005: "class std::basic_istream<char,struct std::char_traits<char> > & __cdecl operator>>(class std::basic_istream<char,struct std::char_traits<char> > &,class person &)" (??5@YAAAV?$basic_istream@DU?$char_traits@D@std@@@std@@AAV01@AAVperson@@@Z) 已经在 operator_in_out.obj 中定义
1>person.obj : error LNK2005: "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class person const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABVperson@@@Z) 已经在 operator_in_out.obj 中定义
1>C:\C++Primerlianxi\exercise1_21\operator_in_out\Debug\operator_in_out.exe : fatal error LNK1169: 找到一个或多个多重定义的符号

请问如何解决输入、输出符号的重定义问题,我的代码错在哪里?
展开
 我来答
xtwgigu2
2015-05-25 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:54
采纳率:0%
帮助的人:76.8万
展开全部
你工程中有person.cpp, 然后person.cpp中包含了person.h?
把person.cpp删掉即可。

建议把函数的实现部分写在.cpp文件里,不要写在.h文件里,很容易引起多个实现的问题。
俟悦可xO
2015-05-25 · 超过12用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:13.6万
展开全部
你可以看看关于_tmain到底是什么,
http://www.jb51.net/article/34516.htm
重定义并不是你定义的"person.h"造成的。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式