[問題] Implicit Class-Type Conversions 的問題?
Dev C++
程式碼(Code):
class Sales_item{
public:
Sales_item(const string& book="default"):isbn(book){}
Sales_item(istream &is);
bool same_isbn(const Sales_item& rhs) {
return isbn==rhs.isbn;
}
private:
string isbn;
};
以上程式照書上打的
Q1.
string temp("num");
Sales_item item;
item.same_isbn(temp); //可以,隱式轉型。
item.same_isbn("num"); 的話會怎麼樣呢??????
我的猜測是會先透過string的constructor隱式轉型為string
再透過Sales_item(const string& book="default");
隱式轉型為Sales_item.
但是我似乎錯了,出現
no matching function for call to `Sales_item::same_isbn(const char[4])'
為什麼沒被轉成string...........??
Q2.
書上說item.same_isbn(temp); temp被轉型為Sales_item物件,一個暫時物件
。一旦same_isbn()結束就消失。創建一個檢驗結束就丟棄的物件這個行為是錯的。
item.same_isbn(Sales_item(temp);才是好的寫法。
反正都會創建暫時物件,有差嗎???
還有Sales_item(temp) 這個寫法是....???
Q3.
為什麼Sales_item temp(cin); 這樣宣告會出現:
[Linker error] undefined reference
to`Sales_item::Sales_item(std::istream&)'
而且constructor不重載,重新打成 Sales_item(istream &is):isbn(is){}還多了一行
invalid conversion from `void*' to `const char*'
這個應該是指cin 回傳的void* 無法被轉為 常數字串吧???
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.204.114
→
03/09 22:19, , 1F
03/09 22:19, 1F
→
03/09 22:19, , 2F
03/09 22:19, 2F
→
03/09 22:22, , 3F
03/09 22:22, 3F
→
03/09 22:23, , 4F
03/09 22:23, 4F
→
03/09 22:24, , 5F
03/09 22:24, 5F
→
03/09 22:25, , 6F
03/09 22:25, 6F
→
03/09 22:26, , 7F
03/09 22:26, 7F
→
03/09 22:26, , 8F
03/09 22:26, 8F
→
03/09 22:30, , 9F
03/09 22:30, 9F
→
03/09 22:31, , 10F
03/09 22:31, 10F
→
03/09 22:45, , 11F
03/09 22:45, 11F
→
03/09 22:45, , 12F
03/09 22:45, 12F
→
03/09 22:45, , 13F
03/09 22:45, 13F
推
03/09 22:51, , 14F
03/09 22:51, 14F
→
03/09 22:52, , 15F
03/09 22:52, 15F
→
03/09 22:53, , 16F
03/09 22:53, 16F
→
03/09 22:53, , 17F
03/09 22:53, 17F
→
03/09 23:06, , 18F
03/09 23:06, 18F
→
03/09 23:07, , 19F
03/09 23:07, 19F
→
03/09 23:07, , 20F
03/09 23:07, 20F
→
03/09 23:08, , 21F
03/09 23:08, 21F
→
03/09 23:09, , 22F
03/09 23:09, 22F
→
03/09 23:11, , 23F
03/09 23:11, 23F
→
03/09 23:11, , 24F
03/09 23:11, 24F
→
03/09 23:12, , 25F
03/09 23:12, 25F
→
03/09 23:13, , 26F
03/09 23:13, 26F
→
03/09 23:15, , 27F
03/09 23:15, 27F
→
03/09 23:16, , 28F
03/09 23:16, 28F
→
03/09 23:18, , 29F
03/09 23:18, 29F
→
03/09 23:20, , 30F
03/09 23:20, 30F
→
03/09 23:21, , 31F
03/09 23:21, 31F
→
03/09 23:24, , 32F
03/09 23:24, 32F
→
03/09 23:33, , 33F
03/09 23:33, 33F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章