相关疑难解决方法(0)

用C ++初始化对象的不同方法

我很确定这是一个重复的问题,但是我已经搜索了一段时间,但没有任何更聪明的方法。

想象一下这堂课:

class Entity {
public:
    int x, y;

    Entity() : x(0), y(0) { }
    Entity(int x, int y) : x(x), y(y) { }
}
Run Code Online (Sandbox Code Playgroud)

这是初始化类的多种方法:

Entity ent1;
Entity ent2();
Entity ent3(1, 2);
Entity ent4 = Entity();
Entity ent5 = Entity(2, 3);
Run Code Online (Sandbox Code Playgroud)

我也知道,有可能在堆内存中创建一个对象,但这对我来说并不是一个很大的谜。

这是我想我知道的

ent1-使用默认构造函数,因此x = 0和y = 0

ent2-使用默认构造函数,因此x = 0和y = 0(不确定)

ent3-构造函数,所以x = 1和y = 2

ent4-默认构造函数,因此x = 0和y = 0

ent5-构造函数,所以x = 2和y = 3

如果我错了纠正我。但是我的问题是,初始化对象的这些方式之间有什么区别?

我不确定何时应该使用哪一个。


c++ constructor initialization class c++11

4
推荐指数
1
解决办法
6132
查看次数

标签 统计

c++ ×1

c++11 ×1

class ×1

constructor ×1

initialization ×1