我一直被困在這一個問題上,也許有人能解釋給我?我沒有提供我的確切代碼,但是我想要實現的類似情況(以及縮短的版本)。這是一個餐廳模擬器。指定一個指針的字符串引用
int main() {
Restaurant i;
string tableID;
cin >> tableID;
i.append(new Table(tableID));//this appends a new table to the linked list
}
//.h file we're not allowed to modify
class Table
{
public:
Table(const string& tableID);//constructor
private:
string* tableID;
}
// .cpp file I'm writing
Table::Table(const string& tableID){
this->tableID = tableID;
}
,我發現了錯誤:
table.cc:9:18: error: cannot convert ‘const string {aka const std::__cxx11::basic_string}’ to ‘std::__cxx11::string* {aka std::__cxx11::basic_string*}’ in assignment this->tableID = tableID;
誰能告訴我這是怎麼回事?對我來說,它似乎將tableID
的地址傳遞給main()
,並將它分配給構造函數中的一個指針,我認爲這是合法的,但也許是const
將我拋棄。
那麼,錯誤消息似乎很清楚。您試圖將一個「string」類型的表達式賦值給一個類型爲「指向string的指針」的變量。它不會出於同樣的原因'int * p = 42;'不起作用 - 兩者都沒有意義。 –
是的,我認爲這是它,但我無法弄清楚我將如何將該字符串轉換爲指針。 – Mike1982