2011-09-22 114 views
-2

我一直在我的硬件上工作了一段時間。它有很多固定和所有。不過,我穿過一個惱人的問題來了,在這裏它是什麼:程序沒有編譯的C++問題

error: no matching function for call to 'Invoice::Invoice(const char [10], double, int)' 


//create an invoice using constructor with parameters 
    Invoice ductTape("Duct Tape",2.99,10); 

這是我已經爲它,但它不承認它。

void ductTape() 
     { 
      setDescription("Duct Tape"); 
      setPrice(2.99); 
      setQuantity(10); 
     } 
+0

你不需要爲你的函數名稱做void Invoice :: ductTape()嗎? – Michael

+0

您的'發票'類沒有接受給定參數的構造函數。另外,你有一個名爲'ductTape()'的方法,它看起來沒有任何用處(我懷疑你的'Invoice'類需要一個'ductTape()'方法)。 – dreamlax

回答

1
error: no matching function for call to 'Invoice::Invoice(const char [10], double, int)' 

如果你讀了錯誤消息,它說,你需要在你Invoice類,它的參數const char [10]double隨後int定義構造函數。

因此,您需要創建一個名爲Invoice的類並創建構造函數。

代碼行Invoice ductTape("Duct Tape",2.99,10);意味着您正在聲明一個名爲ductTape的變量,因此您的函數ductTape在此上下文中沒有意義。