返回信息流小学期作业,要我们编一个足球俱乐部管理程序。
我编了一个类Employee,放在club.h里面
class Employee{
public:
Employee();//无参构造函数
Employee (string,int,int,int,Club* c=NULL);//构造函数
Employee (const Employee& e);//复制构造函数
~Employee (){}
Employee& operator= (const Employee& e);
string name;//姓名
int age; //年龄
int ability;//能力值
int salery;//薪水
Club * inclub;//所在的俱乐部的指针
};
然后所有函数的实现代码则放在club.cpp里面
Employee::Employee():name(""),age(0),ability(0),salery(0),inclub(NULL){}
//其他函数略
但是编译的时候,编译器却报错:
multiple definition of 'Employee::Employee()'等一大堆mutiple definition。
我在club.h和club.cpp头部都加了#pragma once的。
虽然我把所有文件都放一个cpp里面,编译就过了。但文件太长,看着受不了。
这错误究竟该怎么办啊?作业马上要交了,我连最开始的都过不了。
这是一条镜像帖。来源:北邮人论坛 / cpp / #41660同步于 2010/7/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
Dev整得我彻底无语了啊,求助各位大虾
wind1101
2010/7/22镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
【 在 RaulSpain007 的大作中提到: 】
: 多个工程文件么?貌似是类重定义了,加个宏定义锁就好了
: --
: 什么都不会的我飘过
: ...................
怎么加宏定义锁啊。我用了#pragma once,又试了#ifndef CLUB_H #define CLUB_H #endif
也不行啊
【 在 wind1101 的大作中提到: 】
: 怎么加宏定义锁啊。我用了#pragma once,又试了#ifndef CLUB_H #define CLUB_H #endif
: 也不行啊
...这个..不知道了...按道理加了#pragma once不会出现出现重定义....