我試圖存儲正確的票據變量(t1或t2)到t3,所以我可以返回到主。當我使用「=」來設置t1到t3時,它會顯示「no viable overloaded'='」。以下是我的代碼:沒有可行的重載'='錯誤C++
using namespace std;
class ticket
{
public:
ticket();
double input();
double output();
friend ticket operator *(const ticket &t1, const ticket &t2);
friend ticket operator /(const ticket &t1, const ticket &t2);
private:
void cost();
string name;
double miles, price;
int transfers;
};
請編輯您的問題,包括*完整*錯誤輸出,完整,未經編輯和任何信息說明(海灣合作委員會/鏗鏘應該給一些,顯示你有什麼和它的預期)。還顯示導致錯誤的代碼,包括所有涉及變量的聲明/定義和初始化。 –
將問題減少到**最小但完整的例子,讀者可以嘗試。順便說一句,(1)你真的不需要在'character'類型中反映UTF-8編碼的結構,這是不必要的複雜性,(2)只需使用'std :: vector'來管理存儲。或者,(3)簡單的方法是定義'enum character:Byte {}',定義一個'char_traits',並使用'std :: basic_string'專業化。 –
'struct character'並不是做任何你想做的事情的最佳方式。實際上,這會導致標準C++中的未定義行爲(您可能只會讀取與上次寫入相同的工會成員 - 您無法寫入一個成員並讀取另一個成員,或將某些數據轉換爲聯合類型)。即使使用聯合別名編譯器擴展,也不能依賴位域的順序。 –