0

この構造は私のコードに似ています。エラーが発生します。int A::getA() const のプロトタイプがクラス A のいずれにも一致しません。私のもう 1 つの問題は、operator<< のオーバーロードです。正しく動作させることができず、宣言エラーで明示的な修飾が​​発生します。ここに投稿された別の質問で同様のものを見たので、名前空間で .hpp を取得しようとしましたが、これは役に立ちませんでした。解決策を教えていただければ、コードが壊れている理由の詳細も教えていただけますか?

//define.hpp

class A{
...

int getA() const;
int getAa() const;

};

ostream& operator<<(ostream& out, const A& obj); // defined outside of the class



//implement.cpp

ostream& define::operator<<(ostream& out, const A& obj){
    return out << obj.getA() 
                << obj.getAa()
                << endl;
};

int A::getA() const{ ... };
int A::getAa() const{ ... };

int main(){

    return 0
}
4

1 に答える 1

2

関数のように、グローバル スコープ内の関数は、operator<<スコープを設定する必要はありません。define::したがって、定義の一部をスキップします。

ostream& operator<<(...) { ... }
于 2013-07-23T17:14:53.467 に答える