【C/C++】关于C++构造函数成员初始化

文章目录

      • [1. 第一种方式](#1. 第一种方式)
      • [2. 第二种方式](#2. 第二种方式)
      • [3. 优劣](#3. 优劣)

1. 第一种方式

成员初始化列表。在构造函数的参数列表后使用冒号分割的一组初始化语句。

c++ 复制代码
class my_class {
public:
	my_class(int a, int b): m_x(a), m_y(b) {
		/*....*/
	}
private:
	int m_x;
	int m_y;
};

2. 第二种方式

在构造函数内部使用赋值语句进行初始化变量。

c++ 复制代码
class my_class{
public:
	my_class(int a, int b) {
		m_x = a;
		m_y = b;
	}
private:
	int m_x;
	int m_y;
};

3. 优劣

成员初始化列表的效率比在构造函数体内部使用赋值语句要高,因为成员初始化列表可以直接初始化成员变量,而不需要先调用默认构造函数再赋值。因此,在实际开发中,应该尽可能使用成员初始化列表来初始化类的成员变量。

相关推荐
Lucis__7 分钟前
哈希实现&封装unordered系列容器
数据结构·c++·算法·哈希封装
雾岛听蓝8 分钟前
C++ vector:从使用到底层核心剖析
开发语言·c++
唐装鼠12 分钟前
C语言syslog()函数(deepseek)
c语言·开发语言·syslog
2301_7806698614 分钟前
GUI编程(常用组件、事件、事件常见写法)
java
青岛少儿编程-王老师16 分钟前
CCF编程能力等级认证GESP—C++7级—20251227
开发语言·c++
汉克老师17 分钟前
GESP2025年12月认证C++四级真题与解析(编程题2 (优先购买))
c++·sort·结构体·优先级·gesp4级·gesp四级
brevity_souls18 分钟前
Java 中 String、StringBuffer 和 StringBuilder
java·开发语言
我可以将你更新哟19 分钟前
在Ubuntu 22.04上安装C++编译工具
linux·c++·ubuntu
ss27321 分钟前
类的线程安全:多线程编程-银行转账系统:如果两个线程同时修改同一个账户余额,没有适当的保护机制,会发生什么?
java·开发语言·数据库
Skrrapper22 分钟前
TCPTP协议是什么?以及Socket使用指南
网络·c++·websocket·计算机网络