[英]Undefined reference to constructor
我是一名嘗試使用 C++ 的 Java 開發人員。
我剛剛創建了一個新課程。 在我的其他課程中,我想列出可以存儲過濾器對象的列表。
過濾器.h
#ifndef FILTER_H_
#define FILTER_H_
class Filter {
public:
Filter(int id);
int id;
~Filter();
};
#endif /* FILTER_H_ */
過濾器.cpp
#include "Filter.h"
Filter::Filter(int id) {
this.id = id;
}
Filter::~Filter() {
}
汽車.h
#include "Filter.h"
...
...
private:
std::vector<Filter> filters;
汽車.cpp
所以在這里的一個函數中我嘗試這樣做:
int id = 2;
Filter *filter = new Filter(id);
產生此錯誤:
Cars.cpp:120: undefined reference to `Filter::Filter(int)'
stl_construct.h:83: undefined reference to `Filter::~Filter()'
這是什么原因?
該錯誤是由鏈接器生成的,因為它看不到構造函數的定義所在的位置。
如果您使用的是 IDE,則應將兩個 .cpp 文件添加到項目中,以便它們可以一起編譯,並且鏈接器可以找到定義。
如果沒有,那么您必須自己組合它們 - 假設您使用的是 gcc:
g++ cars.cpp filter.cpp
會將它們組合成一個可執行文件,並且不應向您顯示該錯誤
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.