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
关键字创建它仍然可以访问它?
答案 0 :(得分:0)
首先,Fifi f();
是一个函数声明
我认为你的意思是:
Fifi f;
在这种情况下f
将在main
完成时销毁
我建议您使用std::shared_ptr
或boost::shared_ptr
在堆上构建Fifi
并将其存储在A
(作为shared_ptr
)
答案 1 :(得分:0)
Fifi f();
A a();
这些陈述不符合我的预期。简而言之,他们不会定义变量。
class A
看起来不像是一个单身人士。在它的当前状态下,它的状态将不会在主要完成后保留(虽然我不确定在main
完成后你期望如何访问它。)