为什么运行时出现one or more multiply defined symbols found

zhouchenbb 2010-09-17 10:26:38
我在书上拷贝的程序运行时出现这样的问题,不知道是不会死我的VC6。0有问题
程序:、
#include <iostream.h>
#include <string.h>

#define N 20

class Employee
{
private:
//* * 1 * *
char name[N];char street[N];char city[N];char zip[N];
public:
Employee(char *n, char *str, char *ct, char *z);
void change_name(char *n);
void display();
bool equal(char *n);
};

Employee::Employee(char *n,char *str,char *ct, char *z)
{
//* * 2 * *
strcpy(name, n);strcpy(street, str);strcpy(city, ct); strcpy(zip, z);
}

void Employee::change_name(char *n)
{
//* * 3 * *
strcpy(name, n);
}

bool Employee::equal(char *n)
{
//** 4 **
return strcmp(name, n)==0;
}

void Employee::display ()
{
cout << name << " " << street << " ";
cout << city << " "<< zip << endl;
}

void main(void)
{
Employee emp[5] =
{
Employee("张建","武侯路311号", "成都", "600000"),
Employee("李明","青牛街201号", "宜宾", "500000"),
Employee("赵刚","南山路112号", "重庆", "400000"),
Employee("李欣","南京路244号", "上海", "200000"),
Employee("周彪","车城路115号", "沈阳", "100000")
};
for(int i=0;i<5;i++)
emp[i].display();
cout<<"\n修改\"周彪\"的名字为\"黎明\"\n"<<endl;
//** 5 **
for (int j=0;j<5;j++)
{
if (emp[j].equal("周彪")) {
emp[j].change_name("黎明");
emp[j].display();
break;
}
}
}
...全文
836 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomatobin 2010-09-19
  • 打赏
  • 举报
回复
我用vc 6没有问题
doublearmy1 2010-09-19
  • 打赏
  • 举报
回复
你没有建别外一个工程吧,好像是有两个main,因为信息太少了,只能猜了
doublearmy1 2010-09-19
  • 打赏
  • 举报
回复
可能是你的后缀错了吧,你是.c
skinnymonkey 2010-09-18
  • 打赏
  • 举报
回复
VC 下面除了有个error list tab, 应该还有output tab, 把信息考上来。
arong1234 2010-09-18
  • 打赏
  • 举报
回复
你应该贴出完整错误信息,这样会有帮助
smingr 2010-09-18
  • 打赏
  • 举报
回复
还是用c++
#include<iostream>
#include<string>

using namespace std;
我先前也出过类似问题
qazwsx123asdfadf 2010-09-17
  • 打赏
  • 举报
回复
VS2008表示不支持
#include <iostream.h>
#include <string.h>

fatal error C1083: 无法打开包括文件:“iostream.h”: No such file or directory


最好用
#include <iostream>
#include <string>
using namespace std;
dxms8 2010-09-17
  • 打赏
  • 举报
回复
vc6表示木油问题...
dxms8 2010-09-17
  • 打赏
  • 举报
回复
vs2008也表示木油问题。。
冻结 2010-09-17
  • 打赏
  • 举报
回复

#include <iostream>

#include <string>
using namespace std;


#define N 20

class Employee
{
private:
//* * 1 * *
char name[N];char street[N];char city[N];char zip[N];
public:
Employee(char *n, char *str, char *ct, char *z);
void change_name(char *n);
void display();
bool equal(char *n);
};

Employee::Employee(char *n,char *str,char *ct, char *z)
{
//* * 2 * *
strcpy(name, n);strcpy(street, str);strcpy(city, ct); strcpy(zip, z);
}

void Employee::change_name(char *n)
{
//* * 3 * *
strcpy(name, n);
}

bool Employee::equal(char *n)
{
//** 4 **
return strcmp(name, n)==0;
}

void Employee::display ()
{
cout << name << " " << street << " ";
cout << city << " "<< zip << endl;
}

void main(void)
{
Employee emp[5] =
{
Employee("张建","武侯路311号", "成都", "600000"),
Employee("李明","青牛街201号", "宜宾", "500000"),
Employee("赵刚","南山路112号", "重庆", "400000"),
Employee("李欣","南京路244号", "上海", "200000"),
Employee("周彪","车城路115号", "沈阳", "100000")
};
for(int i=0;i<5;i++)
emp[i].display();
cout<<"\n修改\"周彪\"的名字为\"黎明\"\n"<<endl;
//** 5 **
for (int j=0;j<5;j++)
{
if (emp[j].equal("周彪")) {
emp[j].change_name("黎明");
emp[j].display();
break;
}
}
}


VS2005没问题。

#include <iostream.h>
#include <string.h>

这个VC6应该支持呀。
dingshaofengbinbin 2010-09-17
  • 打赏
  • 举报
回复
有问题吗????
sdoaiya 2010-09-17
  • 打赏
  • 举报
回复
虽然不大明白 但还是支持一下
drssx 2010-09-17
  • 打赏
  • 举报
回复
刚才试了一下,vc6顺利通过,抹油问题。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧