0

を使用してCode::Blocksいます。これが私のコードです

#include "LargeInt.h"

LargeInt::LargeInt()
{

}

ヘッダ

#ifndef LARGEINT_H
#define LARGEINT_H


class LargeInt
{
    public:
        LargeInt();
};

#endif // LARGEINT_H

私が得ているエラーは

クラスの 3 行目の「LargeInt は型に名前を付けません」

ファイル>新規>クラスをクリックするだけで、設定などを変更せずにコーディングを開始できました。

4

2 に答える 2

3

コンストラクター内で演算子を定義しないでください。これらは、CPPファイル内の個別のメソッドである必要があります。

于 2013-03-03T21:23:15.833 に答える
1

LargeIntコンストラクターは、型のオブジェクトを有効な状態にするために必要なすべての操作を実行することになっています。operator<<関数とコンストラクターの内部を定義しようとしているようですoperator+-これはできません:

LargeInt::LargeInt()
{
    LargeInt::operator<<(String input){}
    LargeInt::operator+(LargeInt){}
}

クラス定義から対応する宣言を持つ各関数を定義する必要があります。実装ファイルは次のようになります。

LargeInt::LargeInt()
{
    // ...
}

LargeInt LargeInt::operator<<(String str)
{
    // ...
    return some_large_int;
}

istream& operator>>(istream &is, LargeInt &large)
{
    // ...
    return is;
}

ostream& operator<<(ostream &os, LargeInt &large)
{
    // ...
    return os;
}
于 2013-03-03T21:28:16.483 に答える