如何在构造函数中初始化分配的堆可变量
How to initialize a heap allocated varible in the constructor
这是我的"代码":
class a{
int *var=new int;
public:
a(int i):*var(5){};
~a(){}
};
现在,这当然不起作用。如何从构造函数初始化堆变量?(我不想在构造函数内分配堆变量)
喜欢:
class a{
int *var;
public:
a(int a):var(new int(5)){};
~a()
{
delete var;
}
}
内存分配需要在构造函数中进行。另外,您需要确保您在毁灭者中进行交易。
请注意您的参数a
不使用构造函数。如果您的意思是初始化类变量a
的值,则应将分配调用更改为new var(a)
。
注2:除非您特别需要手动管理内存(例如锻炼),否则更好的设计是使用智能指针,例如:
class a{
std::unique_ptr<int> var;
public:
a(int a): var(std::make_unique<int>(5)){};
~a()
{}
}
相关文章:
- 是否可以使用其他变量为变量分配值,而无需在 C++ 中更改其值?
- 将字符串变量分配给无符号字符变量
- 将延迟变量分配给引用变量
- 为什么以下变量分配不正确
- 如何在 c++ 中将两个不同类型的变量分配给一个变量
- C++ 无法将字符数组变量分配给字符串变量
- 直接为浮点变量分配十六进制整数与通过指针转换分配之间的区别
- 识别矩阵变量分配的行为
- C 为什么在原始双阵列中的分配似乎比双变量分配要快得多
- C++:如何将 char 变量分配给向量<char>并访问该向量的元素进行比较?
- 将局部方法变量分配给类指针
- 类构造函数中的静态成员变量分配
- 如果条件语句中的变量分配
- C++ - 将一个变量分配给另一个变量和将变量分配给引用变量有什么区别?
- 需要帮助了解指针变量分配
- 从值捕获的变量分配到lambda参数时,GCC编译器分割故障
- 将非按引用变量分配给返回按引用的函数,反之亦然
- 通过结构指针访问结构变量分配错误数据
- 分段故障(核心倾倒)变量分配
- 在名称空间之外的C 中的外部变量分配值