|
3驿站币
我的一个程序,F5运行时出错,希望高手指点。
建了一个project,2个cpp文件
============================================
一个test1.cpp 里面是main 函数:
#include "class_define.cpp"
void main()
{
Myclass M(1, 2, 3);
M.GetSum();
Myclass N(2, 4, 6);
N.GetSum();
M.GetSum();
system("pause");
}
一个class_define.cpp 文件定义了一个类:
#include <iostream>
using namespace std;
class Myclass
{
public:
Myclass(int a, int b, int c); //初始列表初始化构造函数
void GetSum();
private:
int a, b, c;
static int SUM;//声明静态数据成员
};
int Myclass::SUM = 0;//定义初始化静态数据成员
Myclass::Myclass(int a, int b, int c) :a(a), b(b), c(c)
{
SUM += a + b + c;
}
void Myclass::GetSum()
{
cout << "SUM=" << SUM << endl;
}
==========================================
运行时候错误
1>------ 已启动生成: 项目: test_first, 配置: Debug Win32 ------
1>test1.obj : error LNK2005: "public: __thiscall Myclass::Myclass(int,int,int)" (??0Myclass@@QAE@HHH@Z) 已经在 class_define.obj 中定义
1>test1.obj : error LNK2005: "public: void __thiscall Myclass::GetSum(void)" (?GetSum@Myclass@@QAEXXZ) 已经在 class_define.obj 中定义
1>test1.obj : error LNK2005: "private: static int Myclass::SUM" (?SUM@Myclass@@0HA) 已经在 class_define.obj 中定义
1>D:\userdata\qiuyzhan\Desktop\Coding\cplus_project\test_first\Debug\test_first.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ========== |
最佳答案
查看完整内容
亲~cpp文件是不能被 include 的,class_define 应该分成两个文件,class_define.h 和 class_define.cpp,类的声明放到头文件里面,类的定义实现放到cpp里面就可以了
上一篇: vc2013 局域网聊天源代码求修改下一篇: vc调用迅雷下载
|