相同的对象但类型不同

Identical objects but different types

我使用 C++ 应用程序在两个 PHP 服务器之间同步数据。

我的第一台服务器是本地服务器,我的 C++ 应用程序调用该服务器上的 Web 服务来获取要同步的对象。然后,我的 C++ 应用程序使用另一个网络服务将其发送到我的云 PHP 服务器上。

所以我的对象是一个 soap 对象,在我的两个 php 服务器上定义完全相同。

但是,对于我的 C++ 应用程序,这两个对象不同(或者至少具有不同的命名空间),因此 Y 无法编译以下行:

soapErrorCode = cloudWebService.action(myLocalObject);
//C++ is waiting for an object of type myCloudObject, even if these two object have the same attributes

我的 soap 对象和 Webservice 定义是在我的 C++ 中借助 gSoap 定义的。

我看到了不同的解决方案,但不确定哪个是最好的:

  1. 有没有办法告诉 C++ myLocalObject 和 myCloudObject 是一样的?注意:我不想手动修改 gsoap 生成的代码(工作量太大!)。
  2. 有没有办法告诉 gsoap myLocalObject 和 myCloudObject 相同?
  3. 我是否必须创建函数以将 myLocalObject 转换为 myCloudObject?

谢谢!

在我看来,两种可能的变体是:

  1. 将转换器函数从 myLocalObject 写入 myCloudObject 以及从 myCloudObject 写入 myLocalObject
  2. 您可以为 myLocalObjectmyCloudObject 创建一个基 class 并处理它的指针。