返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++成员初始化列表
  • 801
分享到

C++成员初始化列表

2024-04-02 19:04:59 801人浏览 薄情痞子
摘要

文章转自: 公众号:Coder梁(ID:Coder_LT) 除了可以使用构造函数Classy::Classy(int n, int m): mem1(n), mem2(0), mem

文章转自: 公众号:Coder梁(ID:Coder_LT)

除了可以使用构造函数Classy::Classy(int n, int m): mem1(n), mem2(0), mem3(n*m+2) {
    ...
};类成员进行初始化之外,c++还提供了另外一种初始化的方法,叫做成员初始化列表。

我们假设Classy是一个类,而mem1mem2mem3都是这个类的数据成员,那么类构造函数可以写成:

Classy::Classy(int n, int m): mem1(n), mem2(0), mem3(n*m+2) {
    ...
};

上述代码将mem1初始化为n,将mem2初始化为了0,mem3初始化成了n*m+2。这些初始化工作是对象创建是完成的,并且在执行花括号中的内容之前。

有这么几点需要注意:

  • 这种格式只能用于构造函数
  • 必须用这种格式初始化非静态const数据成员(C++11之前)
  • 必须用这种格式初始化引用数据成员

数据成员被初始化的顺序和它们在类中定义的顺序相同,和初始化列表中的排列顺序无关。

C++11的类内初始化:

C++11当中允许我们直接对成员变量进行赋值:

class Classy {
    int mem1 = 10;
    const int mem2 = 20;
};

这和在构造函数当中使用成员初始化列表等价:

Classy::Classy() : mem1(0), mem2(20) {...}

我们在类当中直接初始化之后,我们也可以在成员初始化列表当中进行覆盖:

Classy::Classy(int n) : mem1(n) {...}

在这种情况下,mem1的值会被替换成n。

到此这篇关于C++成员初始化列表的文章就介绍到这了,更多相关C++成员初始化列表内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++成员初始化列表

本文链接: https://lsjlt.com/news/161612.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++成员初始化列表
    文章转自: 公众号:Coder梁(ID:Coder_LT) 除了可以使用构造函数Classy::Classy(int n, int m): mem1(n), mem2(0), mem...
    99+
    2024-04-02
  • C++类成员初始化的三种方式
    目录一、初始化方式1、初始化方式一:初始化列表2、初始化方式二:构造函数初始化3、初始化方式三:声明时初始化(也称就地初始化,c++11后支持)二、声明时初始化->初始化列表-...
    99+
    2024-04-02
  • C++中怎么初始化类静态成员
    这篇文章将为大家详细讲解有关C++中怎么初始化类静态成员,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C++类静态成员初始化相关实现代码介绍:class mytestclass&n...
    99+
    2023-06-17
  • C++11系列学习之列表初始化
    目录前言:旧标准初始化方式C++11标准初始化方式初始化列表技术细节总结前言: 由于旧标准初始化方式太过繁杂,限制偏多,因此在新标准中统一了初始化方式,为了让初始化具有确定的效果,于...
    99+
    2024-04-02
  • C++11列表初始化是怎样的
    这篇文章主要介绍“C++11列表初始化是怎样的”,在日常操作中,相信很多人在C++11列表初始化是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++11列表初始化是怎样的”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-19
  • C++学习之初始化列表详解
    目录前言一、类的初始化表二、initializer_list前言 本文主要介绍C++中地初始化列表 目前对初始化列表应该有两个方面的定义,一个是类的构造函数中使用的那个初始化表,另一...
    99+
    2023-03-19
    C++初始化列表 C++ 列表
  • C++学习笔记之初始化列表
    目录一、用初始化列表初始化对象1.初始化列表用法2.初始化列表特性二、explicit关键字1.内置类型的隐式转换2.如何避免单参构造函数初始化发生隐式类型转换三、匿名对象1.匿名对...
    99+
    2023-05-17
    c++ 初始化列表 如何初始化列表 c++ 初始化
  • C++类初探常量成员函数与构造函数初始值列表分析
    这篇文章主要讲解了“C++类初探常量成员函数与构造函数初始值列表分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++类初探常量成员函数与构造函数初始值列表分析”吧!头文件mycpp.h#...
    99+
    2023-06-04
  • 解析之C++的列表初始化语法
    目录聚合初始化大括号省略(brace elision)std::initializer_list的另一个故事连《Effective Modern C++》都弄错了的规则构造函数的两步...
    99+
    2024-04-02
  • C++初始化函数列表详细解析
    在以下三种情况下需要使用初始化成员列表: 一,需要初始化的数据成员是对象的情况; 二,需要初始化const修饰的类成员; 三,需要初始化引用成员数据; 原因:C++可以定义引用类型的...
    99+
    2022-11-15
    初始化函数列表
  • C++示例讲解初始化列表方法
    目录定义特性初始化阶段计算阶段成员变量的初始化顺序定义 我们先来看一个例子 Date(int year, int month, int day)//带参构造函数 :_...
    99+
    2024-04-02
  • C++初始化列表的方法有哪些
    本篇内容介绍了“C++初始化列表的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、类的初始化表首先是类中使用构造函数时的初始化表...
    99+
    2023-07-05
  • python3 数组(列表)初始化
    在Python中,可以使用以下方法初始化一个数组(列表):1. 使用方括号 [] 来创建一个空的数组:```my_list = []...
    99+
    2023-10-11
    python
  • C++深入讲解初始化列表的用法
    目录一、小问题二、类成员的初始化三、类中的 const 成员四、初始化与赋值的不同五、小结一、小问题 下面的类定义是否合法 如果合法,ci 的值是什么,存储在哪里 下面编写代码一探...
    99+
    2024-04-02
  • C++构造函数的初始化列表详解
    目录1.问题2.解决方法(初始化列表)3.顺序问题总结 1.问题 class A { private: int m_a; public: A(int a) { cout ...
    99+
    2024-04-02
  • C++是怎么构造函数的初始化列表
    C++是怎么构造函数的初始化列表,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.问题class A {private:int m_a;publi...
    99+
    2023-06-22
  • C++11关联容器的列表怎么初始化
    本篇内容介绍了“C++11关联容器的列表怎么初始化”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是关联容器关联容器(associativ...
    99+
    2023-06-19
  • 怎么使用c#构造函数初始化列表
    在C#中,可以使用构造函数初始化列表来初始化类的成员变量。构造函数初始化列表是在构造函数的参数列表后面使用冒号来定义的。下面是一个示...
    99+
    2023-09-28
    c#
  • C++之谈谈构造函数的初始化列表
    目录一、引入二、初始化的概念区分三、语法格式及使用四、注意事项【⭐】五、总结与提炼一、引入 我们知道,对于下面这个类A的成员变量_a1和_a2属于【声明】,还没有在内存中为其开辟出一...
    99+
    2023-05-15
    C++构造函数 C++构造函数初始化列表 C++初始化列表
  • c++基础语法:构造函数初始化列表
    C++为类中提供类成员的初始化列表 类对象的构造 顺序是这样的:1.分配内存,调用构造函数 时,隐式/显示的初始化各数据 成员2.进入构造函数后在构造函数中执行一般计算 使用初始化...
    99+
    2022-11-15
    构造函数 初始化列表
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作