-1
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关键字创建它以便仍然能够访问它吗?

4

2 回答 2

0

首先Fifi f();是函数声明

我假设你的意思是:

Fifi f;

在这种情况下f将在main完成时销毁

我建议您使用std::shared_ptr或在堆上boost::shared_ptr构建Fifi并将其存储在A(as shared_ptr)

于 2012-08-15T13:56:06.073 回答
0
Fifi f();
A a();

这些陈述没有做我认为你期望他们做的事情。简而言之,他们不会定义变量。

class A对我来说看起来不像单身人士。在它的当前状态下,它的状态在主要完成后将不会被保留(尽管我不确定你希望在main完成后如何访问它)。

于 2012-08-15T13:56:16.650 回答