zoukankan      html  css  js  c++  java
  • c++11之二: 类成员变量初始化

    在C++11中,

    1、允许非静态成员变量的初始化有多种形式:初始化列表; 使用等号=或花括号{}进行就地的初始化。

    可以为同一成员变量既声明就地的列表初始化,又在初始化列表中进行初始化,只不过初始化列表总是看起来“后作用于”非静态成员。

    也就是说,初始化列表的效果总是优先于就地初始化的。

    #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

    2、非常量的静态成员变量,与c++98保持一致。需要到头文件以外去定义它,这会保证编译时,类静态成员的定义最后只存在于一个目标文件中。

    3、静态常量成员,除了const关键字外,还可以使用constexpr来对静态常量成员进行声明。

  • 相关阅读:
    三角函数
    第十七次作业
    第十六次作业
    第15次作业
    第13次java作业
    第十二次java作业
    第十一次java作业
    第十次java作业
    第九次java
    第八次java作业
  • 原文地址:https://www.cnblogs.com/zxpo/p/3891981.html
Copyright © 2011-2022 走看看