如何为指针成员创建对象

时间:2012-08-15 13:53:30

标签: c++ pointers scope

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关键字创建它仍然可以访问它?

2 个答案:

答案 0 :(得分:0)

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

我认为你的意思是:

Fifi f;

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

我建议您使用std::shared_ptrboost::shared_ptr在堆上构建Fifi并将其存储在A(作为shared_ptr

答案 1 :(得分:0)

Fifi f();
A a();

这些陈述不符合我的预期。简而言之,他们不会定义变量。

class A看起来不像是一个单身人士。在它的当前状态下,它的状态将不会在主要完成后保留(虽然我不确定在main完成后你期望如何访问它。)