2012-03-20 75 views
-1

我想實現一個轉讓的顯式轉換構造函數,我很困惑我需要做什麼。我有一個包含單個元素的單詞表,和我做這個構造明確,所以我不能做:C++顯式轉換構造函數

WordList myList; 
list = 'i'; // error 
+0

什麼賦值運算符你有爲WordList? – Akanksh 2012-03-20 16:37:18

+0

這是賦值(但在名稱中有拼寫錯誤)而不是構造 – Flexo 2012-03-20 16:37:24

+0

可能的重複[C++中的顯式關鍵字是什麼意思?](http://stackoverflow.com/questions/121162/what-does-the-explicit-關鍵字在C - 平均值) – 2012-03-20 16:38:05

回答

8

所有你需要使用explicit關鍵字爲:

class WordList 
{ 
    explicit WordList(char c) {} 
}; 

WordList w = 'i'; //error 
WordList v ('i') ; //ok 
+0

我嘗試將我的.cpp和.h文件中的構造函數前面的關鍵字顯式放在前面,但我收到錯誤「非法存儲類」。當我的教授看到它時,我不能在這裏發佈我的代碼。 – Jon 2012-03-20 16:39:57

+0

@ user1277607:否。僅在.'h'文件中,僅在聲明中執行。在我的例子中,我將它定義在類本身中,因此在這種情況下(在定義中)允許「顯式」。 – Nawaz 2012-03-20 16:40:34

+1

謝謝。它工作得很漂亮:) – Jon 2012-03-20 16:43:49