Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在对象之间设置和获取变量,而不引用它们_C++_Oop - Fatal编程技术网

C++ 在对象之间设置和获取变量,而不引用它们

C++ 在对象之间设置和获取变量,而不引用它们,c++,oop,C++,Oop,我有很多对象彼此不知道,但我需要在它们之间交换数据(set和get这些对象的变量)。 我该怎么做? 我研究了观察者设计模式,但似乎只有当观察到的数据在这些类之间相似时,才可以使用该模式 换言之,这可以通过以下方式实现: void ObjectB::setVarA(ObjectA &objectA) { objectA.setVar(15); } 但是没有传递&对象 观察者设计模式正是您想要的。你可以让你的物体可见,并且有一个观察者可以控制它们。对于不同的对象,可以使用不同的观察

我有很多对象彼此不知道,但我需要在它们之间交换数据(
set
get
这些对象的变量)。
我该怎么做?
我研究了
观察者设计模式
,但似乎只有当观察到的数据在这些类之间相似时,才可以使用该模式

换言之,这可以通过以下方式实现:

void ObjectB::setVarA(ObjectA &objectA) {
    objectA.setVar(15);
}
但是没有传递
&对象

观察者设计模式正是您想要的。你可以让你的物体可见,并且有一个观察者可以控制它们。对于不同的对象,可以使用不同的观察者,以便:

似乎只有当这些类之间的观测数据相似时,才能使用该模式

这是一种误解。检查和


您可以根据不同的操作通知观察者。例如,当obj1的“名称”属性更改时,您可以通知观察者;当obj2的“日期”属性更改时,您可以再次通知观察者

如果对象彼此不知道,并且您希望保持这种状态,那么您可以按如下方式创建同时知道这两个对象的函数:


void SetObjectBVarA(常量ObjectA和ObjectA、ObjectB和ObjectB)
{
setVarA(objectA.getVarA());
}