1

プロジェクト用のモジュールを作成していますが、インターフェイスをできるだけシンプルにしたいと考えています。オブジェクトが構築されるときに、オブジェクトをベクターに格納したいと考えています。つまり、これは単純に、静的宣言を使用して、メソッドとスタンドアロン関数を使用してさまざまな方法で試してきたものですが、どれも機能しませんでした。

vector<trialclass> vektor;
class trialclass {
public:
    trialclass() {
        vektor.push_back(*this);
    }
}

どうもありがとう

4

1 に答える 1

0

現状では、コードはコンパイルされません。まず、クラスの最後にセミコロンが必要です

vector<trialclass> vektor;
class trialclass {
public:
    trialclass() {
        vektor.push_back(*this);
    }
};
^^^

第二に、 の宣言はvektora が何であるかを知りませんtrialclass。この再配置は問題を回避します

class trialclass {
public:
    trialclass();
};

std::vector<trialclass> vektor;

trialclass::trialclass() {
    vektor.push_back(*this);
}

vektorこれは、構成された for each のアイテムで終わるという意味でコンパイルおよび「機能」しますtrialclassが、これらはのコピーであることに注意してくださいtrialclass

于 2013-08-22T09:14:19.007 に答える