从VC ++中的不同函数进行对象访问

时间:2010-04-22 11:47:08

标签: c++ model-view-controller qt visual-c++

我的B类中有3个函数。这三个函数必须访问其他类A的成员函数。

我是通过在B类构造函数中创建类A的对象并尝试在类B的函数中访问该对象来实现的。但它显示错误。

如何在这三个函数中评估相同的对象。我必须创建A类对象

B::B()
{ 
  A a;
 }
B:: function()
{
 a.fun(); //fun belongs to class A
}
B:: function1()
{
 a.fun1(); //fun1 belongs to class A
}

我收到错误,如何在两个函数中实现相同的访问对象a。

2 个答案:

答案 0 :(得分:3)

您应该添加A作为B类的成员,而不是B构造函数的局部变量。 试试这个:

class B
{
public:
  B();
  void function1();

private:
  // This is your member, and you can access it from all of B's methods.
  A m_a;
};

答案 1 :(得分:1)

您需要使a成为类B的成员变量,如下所示:

class B
{
private:
    A a;

// ...
}

这将使其可用于B的所有成员函数。

(不需要private - 做出privateprotectedpublic的决定取决于您是否只想在B内使其可用{1}},在BB的派生类中,或在任何地方。)