object作为成员变量

时间:2012-02-29 07:23:43

标签: c++ class object

您在访问对象时遇到了问题,

在我的程序中有2个类A和B

类b有一个成员变量名,它作为private.and gettes / setter函数来访问这个变量(bcoz变量是私有的)。

在类A中的

,有一个成员变量,类B的对象b(私有)。我使用了一个getter来获取该类之外的这个对象。

现在我想使用类a的对象设置对象b的名称。 所以创建了以下代码,但我没有工作。

请帮我解决这个问题。

     // GetObject.cpp : Defines the entry point for the console application.
   //

   #include "stdafx.h"
  #include <iostream>

  class B
 {
   int name;
   public:
   int getname()
   {
     return name;
   }
   void SetName(int i)
   {
     name = i;
   }
  };
  class A
  {
   private:
   B b;
   public:

   B GetB()
   {
      return b;
   }

   };


   int _tmain(int argc, _TCHAR* argv[])
   {
   int ii = 10;
  A a;
  a.GetB().SetName(ii);
  std::cout<<" Value :"<<a.GetB().getname();
  getchar();
return 0;
  }

1 个答案:

答案 0 :(得分:2)

您需要通过引用(或指针)返回成员:

B& GetB()
{
   return b;
}
//or
B* GetB() //i'd prefer return by reference
{
   return &b; 
}

现在你拥有它的方式,你将返回一个对象的副本。

因此B A::GetB()不会返回原始对象。您对其所做的任何更改都不会影响a的成员。如果您通过引用返回,则不会创建副本。您将返回B成员的确切a对象。