-3
私はC++で以下のプログラムを実行していますが、コンパイルはしていません。これは、コンパイルエラーの下に私を与える問題C++では関数の順序が明確ではありませんか?
#include<iostream>
class A;
void showA(A& x) {
// Since showA() is a friend, it can access
// private members of A
std::cout << "A::a=" << x.a;
}
class A
{
int a;
public:
A() {a = 0;}
friend void showA(A& x); // global friend function
};
int main()
{
A a;
showA(a);
return 0;
}
を見つけるのに役立つしてください:
In function 'void showA(A&)':
7:27: error: invalid use of incomplete type 'class A'
:cout << "A::a=" << x.a;
^
3:7: note: forward declaration of 'class A'
class A;
^
コンパイルされていないプログラムは実行しません。クラスの後に 'showA'の定義を移動するだけです。 **解決済み** – LogicStuff
こんにちは、注意してください:デバッグヘルプ( "**なぜこのコードは動作していないのですか?**")は、望ましい動作、*特定の問題またはエラー*、最短コードそれを再現するのに必要な**その質問自体に**。 **明確な問題文**のない質問は他の読者には役に立たない。参照:[mcve]を作成する方法。 – YSC