c – 作为成员变量的对象

c – 作为成员变量的对象,第1张

概述嗨我在访问对象时遇到了问题, 在我的程序中有2个类A和B类 class b有一个成员变量名,kepts为private.and gettes / setter函数来访问这个变量(bcoz变量是私有的). 在A类中,有一个成员变量,B类对象(私有).我使用了一个getter来获取该类外的该对象. 现在我想使用类a的对象设置对象b的名称. 所以创建了以下代码,但我没有工作. 请帮我解决这个问题. // 嗨我在访问对象时遇到了问题,

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

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

在A类中,有一个成员变量,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;  }
解决方法 您需要通过引用(或指针)返回成员:

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

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

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

总结

以上是内存溢出为你收集整理的c – 作为成员变量的对象全部内容,希望文章能够帮你解决c – 作为成员变量的对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1229999.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存