大家看一下,这种情况是因为我的编译器的问题吗?A.H#includeiostreamusing namespace stdclass A{int i
大家看一下,这种情况是因为我的编译器的问题吗?
A.H
#include<iostream>
using namespace std;
class A
{
int i;
public:
A(int j):i(j){cout<<"调用析构函数成功";}
void Out();
}
A.CPP
#include"A.h"
void A::Out()
{
cout<<i<<endl;
}
MAIN.CPP
#include"A.h"
#include"A.cpp"
int main()
{
A a(3);
a.Out();
getchar();
return 0;
}
编译器报的错:
>正在编译...
1>A.cpp
1>e:\新数据结构\对编译器的实验\对编译器的实验\a.cpp(2) : error C2628: “A”后面接“void”是非法的(是否忘记了“;”?)
1>e:\新数据结构\对编译器的实验\对编译器的实验\a.cpp(3) : error C2556: “A A::Out(void)”: 重载函数与“void A::Out(void)”只是在返回类型上不同
1> e:\新数据结构\对编译器的实验\对编译器的实验\a.h(8) : 参见“A::Out”的声明
1>e:\新数据结构\对编译器的实验\对编译器的实验\a.cpp(3) : error C2371: “A::Out”: 重定义;不同的基类型
1> e:\新数据结构\对编译器的实验\对编译器的实验\a.h(8) : 参见“A::Out”的声明
1>main.cpp
1>e:\新数据结构\对编译器的实验\对编译器的实验\a.cpp(2) : error C2628: “A”后面接“void”是非法的(是否忘记了“;”?)
1>e:\新数据结构\对编译器的实验\对编译器的实验\a.cpp(3) : error C2556: “A A::Out(void)”: 重载函数与“void A::Out(void)”只是在返回类型上不同
1> e:\新数据结构\对编译器的实验\对编译器的实验\a.h(8) : 参见“A::Out”的声明
1>e:\新数据结构\对编译器的实验\对编译器的实验\a.cpp(3) : error C2371: “A::Out”: 重定义;不同的基类型
1> e:\新数据结构\对编译器的实验\对编译器的实验\a.h(8) : 参见“A::Out”的声明
1>e:\新数据结构\对编译器的实验\对编译器的实验\main.cpp(6) : error C2264: “A::Out”: 函数定义或声明中有错误;未调用函数
1>正在生成代码...
1>生成日志保存在“file://e:\新数据结构\对编译器的实验\对编译器的实验\Debug\BuildLog.htm”
1>对编译器的实验 - 7 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
C++ 编译器 VS2008 调试
[解决办法]class 定义结束符 } 后面加一个 ; 再试一下。
------解决方案--------------------
定义class没分号
A(int j):i(j){cout<<"调用析构函数成功";} 这个是构造函数