
在我的程序中有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 – 作为成员变量的对象所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)