如何在不使用赋值运算符的情况下为动态变量赋值?

How do I assign an initial value to a dynamic variable without using assignment operator?

本文关键字:情况下 动态 变量 赋值 赋值运算符      更新时间:2023-10-16

我正在通过指针在堆中创建一个动态变量。

int* p = new int;

我相信我们都熟悉这一点。但是,我想一步创建动态变量并为其提供初始值! 我不想以后使用赋值运算符。

*p = 5;

我希望我的所有动态变量都具有相同的初始值,从而避免赋值运算符的额外开销。

如果动态变量是一个类而不是一个整数,你会怎么做?我知道可以通过一个步骤创建和初始化堆栈的类变量:

class Dog {...};
Dog d1("Spot", 5);

如果Dog对象是动态对象,您能做同样的事情吗? 我的程序需要动态分配和初始化 POD 和类类型的变量。

是的,你可以,直接初始化支持它。只需指定初始值设定项。

通过具有非空初始值设定项的新表达式初始化具有动态存储持续时间的对象

int* p = new int(5);
Dog* d1 = new Dog("Spot", 5);
相关文章: