在c++中跳过某些成员变量初始化的利弊是什么

What are the pros and cons of skipping some member variable initialization in c++?

本文关键字:初始化 变量 是什么 成员 c++      更新时间:2023-10-16

考虑以下示例,

Aclass.h

class Aclass()
{
private: 
   int something;
   double nothing;
};

Aclass.cpp

#include "Aclass.h"
Aclass::Aclass (int x) {
    something = x;
    nothing = y;
}
//Write some functions to manipulate x and y.

那么现在,如果我跳过在构造函数中初始化y,会有什么区别呢?缺点是什么?它如何影响代码的其余部分?这是一种很好的编码方式吗?我所知道的是,无论xy是否初始化,或者即使两者都没有初始化(默认构造函数(,构造函数都会创建一个对象,并且构造函数用于创建通用对象。

如果没有理由初始化变量,则不需要此变量
=>完全删除。说真的,一个未初始化的var有利于。。。?没有什么(仅用于初始化(。

如果您计划稍后在使用之前对其进行初始化:
你能保证它在第一次被读取之前会得到一个值吗?这与类方法的调用频率和顺序无关?然后它并不是"错误的",但与其乏味地检查它(并冒着错误的风险,因为它很复杂(,不如在构造函数中给它一个值。

不,故意让它变得更复杂不是一个好的编码方法。

保留任何未初始化的变量将允许它获取一些垃圾值。

结果=未定义的行为。而且它没有优点。