C++ C++;显式转换构造函数

C++ C++;显式转换构造函数,c++,constructor,explicit,C++,Constructor,Explicit,我试图为赋值实现一个显式转换构造函数,但我不知道我需要做什么。我有一个包含单个元素的单词列表,我要将此构造函数显式化,因此无法执行以下操作: WordList myList; list = 'i'; // error 您需要使用explicit关键字的所有内容如下: class WordList { explicit WordList(char c) {} }; WordList w = 'i'; //error WordList v ('i') ; //ok 对于单词列表,你有

我试图为赋值实现一个显式转换构造函数,但我不知道我需要做什么。我有一个包含单个元素的单词列表,我要将此构造函数显式化,因此无法执行以下操作:

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

您需要使用
explicit
关键字的所有内容如下:

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

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

对于单词列表,你有什么赋值运算符?那是赋值(但名称中有输入错误)不是构造。这个问题可能重复的地方太模糊了。“将一个单词分配到世界列表”是什么意思?那么您还没有显示您对WordList的定义。那么,“i”不是一个字符串,而是一个字符。我最好的建议是:在深入研究高级主题之前,先学习基础知识。@Akanksh:他正在分配角色,他想明确禁止这样做。无论如何,我认为这个问题太模糊了。我尝试在.cpp和.h文件中将关键字explicit放在构造函数前面,但收到错误“非法存储类”。如果我的教授看到我的代码,我就不能把它发布到这里。@user1277607:不。只能在声明中的。
h
文件中发布。在我的示例中,我在类本身中定义了它,因此在这种情况下(在定义中),这里允许使用
explicit