私はいくつかの未定義クラスの問題を抱えていたので、1つのヘッダーがそれ自体を追加していた別のものを追加していたので、その時点で存在するので、私はこれを作ったし、初めに入れ、コンパイルが正常に行きましたが、コンパイルの非常に最後の1秒にそれがVisual C++/Cliで "クラス未定義"を避けるためにクラスを事前定義するにはエラーLNK2020
Error 230 error LNK2020: unresolved token (0600003C) Servicos::.ctor Servicos.obj
エラーを投げた - Iので
public ref class Servicos: public System::Windows::Forms::Form {
public:
Servicos(Usuario*,unordered_map<int, std::string>*);
}
他の機能のその瞬間を気にしていなかった、私はちょうどこれは、クラスをインスタンス化してダイアログを表示するだけなので、nstructorを使用します。これはオリジナルです
(私もすべての機能を追加しようとしたんでした、と同じエラーが起こったaltho):
namespace MyProject {
public ref class Servicos: public System::Windows::Forms::Form
{
//... Some Variables declared
public:
Servicos(Usuario* user,
unordered_map<int, std::string>* fab_contas_)
{
this->fab_contas_email = fab_contas_;
this->usuario = user;
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
//... And Other Functions
};
}
は、私が何か間違ったことをやっているすべてのあなたのみんなポイントをできますか?どうもありがとうございました! ありがとう!
感謝私はすでに変更されていますが、それは再定義ではありません。クラスはインスタンス化の後で宣言されているので、コンパイラがそれを知るように設定する必要があります。私はCPPではないifndef文の直後にヘッダを定義し、CPPは使用せず、ヘッダファイルに直接インクルードするだけです。クラスを作成する前にDialogを表示するようにインスタンス化するので、コンストラクタを定義する必要があります。どうすればいい? – Grego
循環参照を適切に回避するには、.cppを使用する必要があります。 'Servicos :: Servicos(Usuario * u、unordered_map * map){...}' –
Attila
コンストラクタを定義する前にあなたに示したようにコンテンツなしで、テンプレートのように、しかし、私はあなたのように定義した場合、それはすでにクラスが存在するクラスをスローするつもりはないのですか?あなたはあなたの質問を編集し、どうすればいいのか教えてください。私は何週間もこれをやろうとしてきましたが、私はできません:/あなたに感謝! – Grego