【发布时间】:2018-06-02 12:30:27
【问题描述】:
首先,我给出代码。然后我解释我面临的问题。
main.cpp
#include <iostream>
#include "acc.h"
using namespace std;
class mem;
int main()
{
show();
return 0;
}
acc.h
#ifndef ACC_H
#define ACC_H
#include "acc.cpp"
void show();
class mem{
int a;
public:
void showa();
void seta(int A);
};
#endif
acc.cpp
#include <iostream>
using namespace std;
void mem::showa(){cout<<a<<endl;}
void mem::seta(int A){a = A;}
void show()
{
mem m;
m.seta(22);
string ss;
cin>>ss;
cout<<"MY name is "<<ss<<" ";
m.showa();
}
我已经在“acc.h”文件中声明的“mem”类并将“acc.h”也添加到了acc.cpp文件中。但是当我从一个函数调用那个类时。它无法响应。显示未声明的“a”和“mem”。我如何才能完美地链接该类的定义和该类的成员函数,以便从另一个函数调用该类的成员函数不会产生任何问题?
【问题讨论】:
-
为什么要在 acc.h 中放置#include "acc.cpp"?我认为没有必要。
-
是的,你是对的。我只是尝试了“反复试验”的方法,这就是它存在的原因。我正在纠正它。谢谢。
-
С++ 是有据可查的语言,无需“反复试验”
-
acc.cpp也应该是#include 'acc.h' -
试错不是好的学习方法,应该从a good book开始