首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么类内初始化程序不能使用()

为什么类内初始化程序不能使用()
EN

Stack Overflow用户
提问于 2015-04-04 13:28:40
回答 1查看 94关注 0票数 0

今天,当我阅读C++ Primer时,它说类初始化器不能使用我在Stackoverflow and find a similar question here.And上搜索的()。公认的答案是:原因可能是成员函数的声明与.But类型成员的定义之间存在歧义,我不完全同意他的观点。我尝试了下面的代码:

代码语言:javascript
运行
复制
struct Sales_data
{
    int i(5); //this line can't be regard as a function
};

但是编译器仍然可以complain.Who告诉我为什么。\ compiler:clang++版本:3-4

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-04 13:29:38

这种语言是不允许的。原因是,在某些情况下,它无法从函数声明中消除歧义:

代码语言:javascript
运行
复制
struct foo
{
  int bar();
};

因此,它不是通过允许()有时工作来复制整个()的惨败,而是完全不允许的。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29447003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档