A具有一個類層次結構看起來somethign像該參考getData()const': 錯誤:從'const DataType'類型的表達式的類型'const AbstractDataType &'的引用無效初始化返回一個C++中const成員函數
我在哪裏出錯 - 是thi在我使用指針的情況下,我是否需要MUST?
[編輯 - 固定分號]
A具有一個類層次結構看起來somethign像該參考getData()const': 錯誤:從'const DataType'類型的表達式的類型'const AbstractDataType &'的引用無效初始化返回一個C++中const成員函數
我在哪裏出錯 - 是thi在我使用指針的情況下,我是否需要MUST?
[編輯 - 固定分號]
不,你不需要使用指針。在這種情況下,您可以同樣使用引用或指針。
您粘貼的代碼應該可以工作,並且可以在g ++ 4.4和Visual Studio 2010中工作....除了在類聲明之後缺少分號以外。
我猜你也許在這裏的代碼不完全匹配你正在編譯的代碼。
特別是你不小心在代碼中做到這一點?
class DataType /*: public AbstractDataType*/ {
public:
virtual int getInfo() { };
};
是的,我確實忘了繼承AbstractDataType。 Jeez,這是一個新手錯誤。 : -/ – 2010-05-19 01:50:22
@Chris:每個人都有可能遇到 – 2010-05-19 02:06:51
我沒有GCC的副本來進行測試,但問題可能是圍繞數據的括號。編譯器可能會將其解釋爲DataType類型的表達式,然後您無法將其分配給引用。試試:
return data;
我沒有看到任何錯誤的代碼,並且Comeau和Visual C++ 2010都接受它(通過微不足道的修改來編譯它)。 – 2010-05-19 01:31:17
用g ++編寫的工程4.4.1 – sth 2010-05-19 01:32:20
適用於g ++ 4.2.4(以你的類中的缺失分號爲模) – Stephen 2010-05-19 01:34:23