これは私を狂ってしまった。私は「WordCloud :: WordCloud()」関数にエラーが発生しました。デフォルトのコンストラクタが呼び出されているようですが、定義していないため、エラーがスローされていました。C++ - なぜこのメンバを静的宣言する必要がありますか?
コンストラクタは次のとおりです。
WordCloud(map<string, int> *source);
そしてメインのCPPファイル内
は、エラーがときにインスタンス化されていた私はWordCloudオブジェクトを推測している、class FontTestingApp : public AppBasic
{ // <-- error was appearing on this line
public:
void setup();
void mouseDown(MouseEvent event);
void update();
void draw();
map<string, int> wordList;
WordCloud wc; // comment out this line and it compiles
};
ので、指示された回線に発生しましたFontTestingAppクラスがインスタンス化されました。
私はWordCloud wc;
が、それはコンパイル行をコメントアウトした場合。それを修正する
私は最終的に
static WordCloud wc;
にラインを変更し、それがコンパイル。
私は本当に理由は分かりませんが、それは十分ではありません:)誰かがここで何が起こっているのか説明できたら、私はとても感謝しています。私はlibCinderを途中で使用しています(libcinder.org)
これはctor宣言です。空のctorを実装しようとしましたか? – mingos
staticを追加した後、あなたの 'main'に' FontTestingApp'のオブジェクトを作成してもまだ動作しますか? – Jaywalker
いいえ、静的を追加するとコンパイルされますがリンクされません。他の人が指摘したように、静的は問題を隠すだけです。問題はもっと基本的だった。私はwcをWordCloud * - WordCloud * wcとして宣言していたはずです。宣言することによって、私はインスタンス化しているので、既定のコンストラクタを呼び出すことができます。私はかなり愚かな気分になる:)私はJavaであまりにも多くの年を非難する... – Sam