为什么类内初始值设定项不能使用 ( )
Why in-class initializer can't use ( )
今天当我阅读C++Primer时,它说类初始化器中的不能使用()我在Stackoverflow上搜索过,在这里找到了类似的问题。公认的答案是:原因可能是成员函数的声明和类型成员的<strong]定义之间存在歧义。但我并不完全同意他的观点。我尝试以下代码:>
struct Sales_data
{
int i(5); //this line can't be regard as a function
};
但编译器仍然抱怨。谁能告诉我为什么\编译器:clang++版本:3-4
该语言不允许使用它。原因是在某些情况下,它无法从函数声明中消除歧义:
struct foo
{
int bar();
};
因此,与其通过允许()
有时工作来复制整个最令人烦恼的解析惨败,不如直接禁止它。
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么我的for循环不能正确获取argv
- 为什么我不能在 FOR LOOP 中使用 i/10,C++?
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 为什么模板类中的对象不能返回值
- 为什么我不能在一个类的不同行中声明和定义成员变量?
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- 数组长度,为什么从命令行获取时不能使用它?
- 为什么我不能使用 EGL 创建无头 OpenGl 上下文?
- 为什么我不能将一个对象push_back到属于另一个类的对象向量中?
- 为什么我不能将 rand() 与数组的大小一起使用?
- 为什么虚函数不能是静态的和全局的?
- 为什么我不能在 while 循环中创建线程?
- 为什么这个音频包络不能通过开关的情况?
- 为什么不能修改对象中的值?另外,我如何改进此链表?
- 如果'C'公开继承'B',B 私下继承'A',为什么我不能在"C"中创建"A"的对象?
- 为什么 HeapFree() 不能正常工作?
- 为什么文本运算符不能正常模板化?
- CreateProcess可以启动一个进程,但QProcess不能.为什么