所以我正在用 c 撰寫一個程式,我得到了一個回傳相同錯誤的程式版本:
#include <iostream>
class A
{
public:
B foo()
{
return B();
}
};
class B
{
public:
A bar()
{
return A();
}
};
int main(int argc, char const *argv[])
{
A x = A();
B y = x.foo();
return 0;
}
但是每當我編譯它時,它都會給我兩個錯誤:
main.cpp:6:5: error: unknown type name 'B'
B foo()
^
main.cpp:8:16: error: use of undeclared identifier 'B'
return B();
但是我不能只將 B 移到 A 上方,因為我只會得到一個不同的錯誤:
main.cpp:6:5: error: unknown type name 'A'
A bar()
^
main.cpp:8:16: error: use of undeclared identifier 'A'
return A();
我完全不知道如何解決這個問題,所以任何幫助都將不勝感激!
uj5u.com熱心網友回復:
您需要拆分宣告和定義。此外,您需要在 A 使用它之前將 B 宣告為一個類。
#include <iostream>
class B;
class A {
public:
B foo();
};
class B {
public:
A bar();
};
B A::foo() {
return B();
}
A B::bar() {
return A();
}
int main(int argc, char const *argv[]) {
A x = A();
B y = x.foo();
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/432202.html
上一篇:通過類方法附加HTML內容
