首页 > 代码库 > c++11之二: 非静态成员变量初始化
c++11之二: 非静态成员变量初始化
在C++11中,允许非静态成员变量的初始化有多种形式:初始化列表; 使用等号=或花括号{}进行就地的初始化。
可以为同一成员变量既声明就地的列表初始化,又在初始化列表中进行初始化,只不过初始化列表总是看起来“后作用于”非静态成员。
也就是说,初始化列表的效果总是优先于就地初始化的。
#include <iostream> 2 using namespace std; 3 class CBase{ 4 public: 5 CBase(){cout<<"mem default="<<mem<<endl;} 6 CBase(int i):mem(i){cout<<"mem init="<<mem<<endl;} 7 int mem{10}; 8 }; 9 10 int main(){ 11 CBase objA; 12 CBase objB(5); 13 }
mem default=10
mem init=5
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。