我正在通过指针在堆中创建一个动态变量。
int* p = new int;
我相信我们都很熟悉。但是,我想创建动态变量并给它一个初始值 一步到位 我不想以后再使用赋值运算符。
*p = 5;
我希望我的所有动态变量都具有相同的初始值,从而避免赋值运算符的额外开销。
如果动态变量是一个类而不是一个int,您会怎么做?我知道可以一步创建和初始化堆栈的类变量:
class Dog {...}; Dog d1("Spot", 5);
如果 Dog 对象是动态的? 我的程序需要动态地分配和初始化POD和类类型的变量。
Dog
是的,你可以, direct initialization
使用具有非空初始值设定项的新表达式初始化具有动态存储持续时间的对象
int* p = new int(5); Dog* d1 = new Dog("Spot", 5);