如何为指针成员创建对象
How to create objects for pointer members
class A{
private:
Fifi * fifi;
public setFifi(Fifi * aFifi){
fifi = aFifi;
}
};
int main(){
Fifi f;
A a;
a.setFifi(f);
}
虽然它没有在上面的代码中实现,但class A
实际上是一个单例。我想知道的是,我是否仍然能够访问主范围完成的fifi
成员。(假设 A 是单例)
或者f
对象会丢失,我是否应该使用 new
关键字创建它才能仍然能够访问它?
首先,Fifi f();
是一个函数声明
我假设你的意思是:
Fifi f;
在这种情况下,f
将在main
完成后被销毁
我建议您使用 std::shared_ptr
或 boost::shared_ptr
在堆上构造Fifi
并将其存储在A
中(如shared_ptr
)
Fifi f();
A a();
这些陈述没有做我认为你期望他们做的事情。简而言之,它们不会定义变量。
对我来说,class A
看起来不像一个单身人士。在当前状态下,在主要完成之后不会保留它的状态(尽管我不确定您希望在main
完成后如何访问它)。
相关文章:
- 使用基类指针创建对象时,缺少派生类析构函数
- 如何创建对象函数指针C++映射?
- C++ 双向链表:使用矩阵类成员创建和填充列表
- C++创建对象数组
- 使用 back_inserter 从结构的单个成员创建向量
- 在 C++ 的 Switch Case 中创建对象后对对象调用方法
- 如何获取在 main() 函数中构造的类的创建对象?
- 无法使用类型 'const char *' 的左值初始化类型 'char *' 的成员子对象
- 基于文件中的条目创建对象
- 错误:创建对象后无法分配区域
- 为类的成员创建别名
- 使用各种数据类型成员创建对象的简便方法
- C 用数组作为成员创建对象
- 在成员函数中创建对象
- 我如何在参考上使用数据成员而不使用新关键字创建对象
- 如何全局创建对象并使用该对象访问全局范围内的公共成员函数
- 如何为指针成员创建对象
- 创建对象时初始化的类中的成员值
- c++成员初始化列表/在类中创建对象
- 需要帮助在类中创建对象,并为成员函数赋值