【发布时间】:2013-05-24 21:15:16
【问题描述】:
这是我的 main.cpp。我的程序从这里开始,这就是我遇到问题的地方:
我收到两个错误:
第 23 行对 `BankController::BankController(TransactionRepository)* 的未定义引用
和
在第 19 行对 `TransactionFileRepository::TransactionFileRepository(std::string) 的未定义引用
对于他们来说,类型都是C/C++ 问题,资源是main.cpp
#include "bankgui.h" #include "Controller/BankController.h" #include "Repository/TransactionFileRepository.h" #include "Repository/TransactionMemoryRepository.h" #include "Repository/TransactionRepository.h" #include <QtGui> #include <QApplication> #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]){ string path = "DataStorage/Database.txt"; //Instantiate the main data repository TransactionRepository* mainDatabase; mainDatabase = new TransactionFileRepository(path); // <-- Error here //Instantiate the main controller BankController* mainController; mainController = new BankController(mainDatabase); // <-- Same Error here //Starts the GUI QApplication app(argc, argv); BankGUI* mainWidget; mainWidget = new BankGUI(mainController); mainWidget->show(); return app.exec(); }
我有 3 个课程:
一个虚拟的TransactionRepository
一个实现上述TransactionMemoryRepository
的类
将上述TransactionMemoryRepository继承到TransactionFileRepository
的类
我已经在谷歌上搜索了几个小时的解决方案,但我尝试的一切都无法消除这些错误。
我应该提到这是我正在从事的 C++ QT 项目。我必须在项目属性中添加包含路径才能使某些事情起作用。
#included 的所有文件都存在。
【问题讨论】:
-
您没有将您的 CPP 文件正确链接到您的标头声明。这就是所有这些错误的描述。
-
现在阅读那篇文章