【问题标题】:OBject access from different functions in VC++VC++中不同函数的对象访问
【发布时间】:2010-04-22 11:47:08
【问题描述】:

我的 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 的地方实现相同的功能。

【问题讨论】:

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


    【解决方案1】:

    您应该将 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;
    };
    

    【讨论】:

      【解决方案2】:

      您需要像这样将a 设为B 类的成员变量:

      class B
      {
      private:
          A a;
      
      // ...
      }
      

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

      (没有必要设置为private - 设置为privateprotectedpublic 的决定取决于您是否希望仅在BBB 的派生类,或无处不在。)

      【讨论】:

        猜你喜欢
        • 2019-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-25
        • 1970-01-01
        • 2011-10-07
        • 1970-01-01
        • 2018-07-26
        相关资源
        最近更新 更多