C++之构造函数列表使用默认值(一百九十一)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:理解C++之构造函数列表为默认值

2.应用实例

<1>.v1.0

#include 
using namespace std;

class B{
public:
  int num = 10;
};

class A{
public:
  A(): mBuf("Hello"), mB(){
    printf("%s(), line = %d\n",__FUNCTION__,__LINE__);
  }

  void test_count(){
    printf("%s(), line = %d\n",__FUNCTION__,__LINE__);
  }
  
  string mBuf;
  B mB;
};

int main(){
  //1.类第一种实例化方式
  //A b = A();

  //2.类第二种实例化方式
  // A *a = new A();

  //3.构造函数列表默认值
  A c;
  c.test_count();
  int num = c.mB.num;
  string buf = c.mBuf;

  printf("%s(), line = %d, num = %d, buf = %s\n",__FUNCTION__,__LINE__,num,buf.c_str());

}

注意:c.mB即A构造函数列表的默认值,在A类中直接实例化B类对象为mB,在main函数中直接用。
在A构造函数初始化中传递为空,即使用默认值: A(): mBuf(“Hello”), mB()中,mB没有传递B类实例化对象,直接使用默认值。

你可能感兴趣的:(C++入门系列,c++,开发语言)