Kel*_*ton 1 c++ header include
我在c ++中编写代码时遇到的最大问题是你必须在引用它之前声明一个类.说我有这样的两个头文件...
那么header1.h
#include "Header2.h"
#include <deque>
#include <string>
#include <iostream>
using namespace std;
class HelloPackage;
class Hello
{
public:
string Message;
HelloPackage * Package;
Hello():Message("")
{
}
Hello(string message, HelloPackage * pack)
{
Message = message;
Package = pack;
}
void Execute()
{
cout << Message << endl;
//HelloPackage->NothingReally doesn't exist.
//this is the issue essentially
Package->NothingReally(8);
}
};
Run Code Online (Sandbox Code Playgroud)
Header2.h
#include "Header1.h"
#include <deque>
#include <string>
#include <iostream>
using namespace std;
class HelloPackage
{
public:
deque<Hello> Hellos;
HelloPackage()
{
Hellos = deque<Hello>();
}
int AddHello(string Message)
{
Hellos.push_back(Hello(Message,this));
}
void ExecuteAll()
{
for each(Hello h in Hellos)
h.Execute();
}
int NothingReally(int y)
{
int a = 0;
a += 1;
return a + y;
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道的是,有没有优雅的解决方案来处理这些问题?比如c#和java,你不受这种"线性"编译的限制.
这对您有用的原因是因为您可以使用您想要引用的类的前向声明,而不包括文件,如果您愿意的话.
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |