美文网首页
c++类成员变量初始化详解

c++类成员变量初始化详解

作者: fatshi | 来源:发表于2023-02-25 18:19 被阅读0次

【转】https://blog.csdn.net/bitcarmanlee/article/details/124188537

在C++里,初始化类成员,有两种方式:

  • 列表初始化
  • 构造函数内赋值
  1. 列表初始化示例
class D {
    int a, b;
    string c;
    public:
        D() : a(1), b(2), c("sss") {
            cout<<"a is: "<<a<<endl;
            cout<<"b is: "<<b<<endl;
            cout<<"c is: "<<c<<endl;
        }
};
  1. 构造函数内赋值
class D {
    int a, b;
    string c;
    public:
        D(int a, int b, string c) {
            this->a = a;
            this->b = b;
            this->c = c;
            cout<<"a is: "<<a<<endl;
            cout<<"b is: "<<b<<endl;
            cout<<"c is: "<<c<<endl;
        }
};

int main(int argc, char const *argv[])
{
    D d(1, 2, "sss");
    return 0;
}

二者的差别
当采用列表初始化的时候,代码直接调用了成员变量的构造函数,只需要一步就可以完成。 而在构造函数中初始化的时候,先调用的是成员变量的默认构造函数构造了类成员,然后再调用赋值运算符对之前默认构造的类成员进行赋值,这实际上进行了两步操作。 当类的结构较为复杂的时候,会存在性能上的差异。

相关文章

  • c++ python java

    c++ 初始化 C++类中成员变量的初始化有两种方式 - yu132563的专栏 - CSDN博客 C++ 变量初...

  • 第二章:保证稳定性和兼容性

    2.7 快速初始化成员变量 C++98:使用 ‘=’ 初始化类中成员变量,成员变量必须满足:① static ② ...

  • c++学习笔记第五天

    一、c++中修饰类的const关键字 const 修饰类的成员变量,表示成员常量,不能被修改,同时它只能在初始化列...

  • C++中的成员变量和成员函数

    C++中的类有两个成分: (1)成员变量 成员变量按照作用域分为静态成员变量和非静态成员变量,C++中成员变量的默...

  • static

    c的static 全局变量 定义初始化最好在.c文件c++类的static成员变量在.h class中只是声明

  • C++系列之面向对象

    C++类&对象 C++类定义 类&对象详解 概念描述类成员函数[https://www.runoob.com/cp...

  • 静态代码块、静态变量、成员变量等加载顺序详解

    静态代码块、静态变量、成员变量等加载顺序详解 1 单个类的初始化顺序 一个类 无论创建多少对象,静态数据只占用一份...

  • C++静态成员变量与静态成员函数

    为什么要使用静态成员变量? 某一个变量需要被多个对象共享 静态成员变量如何进行初始化? 类外初始化(类外初始化在构...

  • [转]Effective C++学习笔记:初始化列表中成员列出的

    类成员的默认初始化顺序是按照声明顺序进行, 如果使用初始化列表初始化成员变量, 则必须按照成员变量的声明顺序进行;...

  • 构造函数初始化列表

    一、抛砖引玉--抛转 在写C++类的时候你应该有一个疑问!C++中, 类的成员变量在定义的时候为什么不直接初始化?...

网友评论

      本文标题:c++类成员变量初始化详解

      本文链接:https://www.haomeiwen.com/subject/sxafldtx.html