c – 作为成员变量的对象
发布时间:2020-12-16 07:29:19 所属栏目:百科 来源:网络整理
导读:嗨我在访问对象时遇到了问题, 在我的程序中有2个类A和B类 class b有一个成员变量名,kepts为private.and gettes / setter函数来访问这个变量(bcoz变量是私有的). 在A类中,有一个成员变量,B类对象(私有).我使用了一个getter来获取该类外的该对象. 现在我想使用
嗨我在访问对象时遇到了问题,
在我的程序中有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; } //or B* GetB() //i'd prefer return by reference { return &b; } 你现在拥有它的方式,你将返回一个对象的副本. 所以B A :: GetB()不返回原始对象.您对其所做的任何更改都不会影响a的成员.如果您通过引用返回,则不会创建副本.您将返回作为a成员的确切B对象. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |