[解決済み]この問題は、5-6 回のクリーンアップとリビルドで何とか解決しました。コードは変更されていません。
デフォルトのコンストラクターを持つクラスと、8 つの引数を取るコンストラクターがあります。
別のクラスからコンストラクターを呼び出して 8 つのパラメーターを渡そうとしていますが、これを実行しようとするとLNK2019 Error
.
私を混乱させるのは、デフォルトのコンストラクターを何も呼び出さない場合、プログラムがコンパイルして正常に実行されることです...すべてが正しいインクルードを持ち、デフォルトのコンストラクターを呼び出すことができるため、機能している必要があります。引数の一部としてQStringsを使用していますが、 QString が含まれているので、それはあり得ません...LNK2019 error
コンストラクターが引数を取って下駄を取る理由を誰かが知っている他の理由はありますか?
車.h
#include <QString>
class car
{
public:
car();
car(int car_id, QString something, QString something_else, QString something3, int an_int, int another_int, int another_int_i, QString something4);
};
車.cpp
car::car()
{
}
car::car(int car_id, QString something, QString something_else, QString something3, int an_int, int another_int, int another_int_i, QString something4)
{
}
明らかに、コンテキストや値などを削除したばかりですが、構造に違いはありません
データベースコントローラー.cpp
#include "DatabaseController.h"
#include "car.h"
void DatabaseController::DoSomething()
{
car *pcar = new car(0, "", "", "", 0, 0, 0, "");
}
インターフェイス.cpp
#include "DatabaseController.h"
void interface::on_btn_clicked()
{
DatabaseController DC;
DC.DoSomething();
}
完全なエラー:
DatabaseController.obj:-1: error: LNK2019: unresolved external symbol "public: __thiscall car::car(int,class QString,class QString,class QString,int,int,int,class QString)" (??0car@@QAE@HVQString@@00HHH0@Z) referenced in function "public: void __thiscall DatabaseController::getAll(class QString)" (?getAll@DatabaseController@@QAEXVQString@@@Z)