我是一個n00b,所以對任何事都正確。鏈接器命令在Xcode中與純虛擬對象失敗
我一直在這個工作了幾天,並已做了研究,但似乎無法解決問題。這是一個主要使用Visual Studio的編程類,我的許多同學都沒有問題。雖然,我在Xcode上,所以也許它與此有關。基本上,我創建一個名爲Geometric_Object與子類Circle.h和Rectangle.h一個純粹的虛擬對象,然而,當我運行代碼,我得到了以下錯誤:
Undefined symbols for architecture x86_64:
"GeometricObject::GeometricObject()", referenced from:
Circle::Circle() in main.o
Rectangle::Rectangle() in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我以後丟失。由於我沒有足夠的信譽點,因此我無法發佈所有鏈接,因此我必須在Dropbox上將它們壓縮爲一個。希望有人能繞過這個,所以沒有人害怕解壓縮內容。
https://dl.dropboxusercontent.com/u/82764116/Xcode.zip
您無法「創建...純虛擬對象」。你*可以*創建一個*具體*對象,它是純虛擬類的*子類*。例如:'MyAbstractBaseClass * myObject = new MyConcreteSubclass()'。 – paulsm4 2013-04-29 21:15:07
我只是試圖實例化圓和矩形應該不是是純虛擬的......他們應該嗎? – 2013-04-29 21:47:37
我認爲你的文章說「我試圖創建一個純虛擬對象」。我說你不能。所以我想我們同意:)問:「GeometricObject()」是一個抽象類嗎?你爲它定義了一個構造函數嗎?如果是這樣,也許這就是問題所在:你爲「GeometricObject()」定義了一個顯式的構造函數,但是「Circle()」和「Rectangle()」都在尋找默認的(零參數)構造函數。 – paulsm4 2013-04-29 22:18:42