c++类成员分配
C++ class member allocation
假设我有:
class foo{
Member member;
foo();
~foo();
};
如何分配成员?
编辑:我该如何告诉他使用哪个构造函数?(抱歉没说清楚)
现在我已经知道了member = Member(...);
语法
这会导致内存泄漏吗?
{
Memory *temp = new Member();
member = *(temp); //will it work at all??(is it copy constructor?)
delete temp;
}
c++不是Java。这个成员已经被分配了。它是它所在实例的内存的一部分。它将由包含实例的构造函数构造(初始化)。关键字new与不是指针的成员无关。
假设Member
不是指针类型的类型定义,即不是定义为,例如
typedef int* Member;
你不需要做任何事情来分配它,因为它是自动分配的,当你分配foo
的实例
编辑:我该如何告诉他使用哪个构造函数?(抱歉我没说清楚)
:
foo::foo() : member(...) // member initializer list
{
}
我该如何告诉他使用哪个构造函数?
Member member
在类声明中没有调用任何构造函数,因为它只是声明。但是,当您稍后定义它时,您应该使用member()
, member
或member(arg,..)
来定义成员对象并调用特定的构造函数。
代码很好,它可以工作。只需注意,它将调用赋值操作符,而不是复制构造函数。
相关文章:
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 我有一个对象,它将在整个程序的持续时间内实例化,但一个类成员不会,我应该动态分配它吗?
- 在对象指针上调用 Delete 是否会递归删除其动态分配的成员
- C++类成员:堆栈与堆分配
- 为什么在分配给成员变量之前获取unique_ptr的返回是一个问题?
- (为什么)我们可以在初始化中将非静态类成员分配给静态变量吗?
- 在成员初始值设定项列表中分配unique_ptr
- 对象分配-成员函数的使用无效错误
- 如何确定对象是否已分配成员
- 我可以分配成员访问操作员的返回值吗?
- lambda表达式分配成员函数指针
- 如何在C++中从命令行参数分配成员变量
- 为什么分配成员会引发 NullReferenceException
- 错误:在只读对象中分配成员
- 在只读对象中分配成员 '
- 分配成员变量时出现分段错误
- 具有动态分配成员的结构体的向量
- 按值分配成员对象:我的假设是否正确
- 创建std::shared_ptr来分配成员变量时内存泄漏
- 处理包含动态分配成员的对象向量