それぞれに独自のクラスを含む2つのcppファイルがあります。私のmain.cファイルで、これらのクラスのグローバル宣言を作成しました。すべてのヘルプは非常に高く評価されるだろうC++のexternエラー
In member function 'void First::F_method()': error: invalid use of incomplete type 'class Second' note: forward declaration of 'class Second'
:私は、グローバルクラスのインスタンスことを参照しようF_method
とS_method
内部の私のFirst.cppとSecond.cppのエラーを取得しています!
MAIN.C
#include "First.h"
#include "Second.h"
#include "Global.h"
First one;
Second two;
int main()
{
while(1){
one.F_method();
two.S_method();
}
}
GLOBAL.H
extern class First one;
extern class Second two;
First.cpp
#include "First.h"
#include <iostream>
#include "Global.h"
using namespace std;
First::First()
{
//Constructor
}
void First::F_method()
{
std::cout << two.S_Var << std::endl;
}
First.h
#ifndef First_h
#define First_h
class First
{
public:
First();
void F_method();
int F_Var = 66;
};
#endif
Second.cpp
#include "Second.h"
#include <iostream>
#include "Global.h"
using namespace std;
Second::Second()
{
//Constructor
}
void Second::S_method()
{
std::cout << one.F_Var << std::endl;
}
Second.h
#ifndef Second_h
#define Second_h
class Second
{
public:
Second();
void S_method();
int S_Var = 12;
};
#endif
どのようなエラーが発生しますか? – NathanOliver
メンバー関数 'void First :: F_method()':エラー:不完全な型 'class second'の無効な使用 'class second'の前方宣言 – PanCy
'#include" First.h "を第2に追加する必要があります.cppとFirst.cppの '#include" Second.h "'となります。 –