在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/C++/ 為什么C++不允許在類內(nèi)使用圓括號初始化

為什么C++不允許在類內(nèi)使用圓括號初始化

有人說說是為了避免歧義。
比如:

class Widget 
{
private: 
  typedef int x;
  int z(x);
};

這樣變成了函數(shù)聲明。
但是,在類外同樣可以寫

typedef int x;
int z(x);

我覺得避免歧義并不是它的原因。之后看有人說是類內(nèi)不允許直接初始化,那么列表初始化不屬于直接初始化嗎?
請問類內(nèi)不允許圓括號初始化是什么原因?C++ primer第五版65頁只說了“記住”,沒說原因啊

回答
編輯回答
舊酒館

你為什么 duang 一下就覺得“避免歧義并不是它的原因”?

Most Vexing Parse 了解一下?想用小括號初始化必然會面對失敗。引入列表初始化還不是為了克服這些問題。

2017年6月24日 14:11