如何实现将数据从用户应用程序传输到类内部存储器的类方法

How to implement a class method to transfer data from user application into the class internal storage

本文关键字:传输 应用程序 内部 类方法 存储器 用户 何实现 实现 数据      更新时间:2023-10-16

考虑一个c++类或c结构体,其函数实现了某种数值方法,如线性方程组求解。类可以有自己的私有矩阵元素存储。对于精度问题,内部存储可以使用不同于应用程序的浮动类型来实现(即应用程序使用float,而类使用long double)。

我应该如何声明和实现一个类方法,将任何外部格式数据转换为已知的内部格式数据,而不暴露内部存储?

EDIT1:我将尝试澄清一下我的问题:这种情况发生在API(例如,方程求解器)和客户端应用程序("应用程序")之间。当然,在应用程序能够使用API之前,必须先定义它。因此,必须有一个类方法允许在已知的内部类型数据和未知的外部类型数据之间进行传输。是否有可能实现这种未知类型的方法,就像在模板中使用的那样?

通常的方法是template<typename Iter> void assign(Iter begin, Iter end);

按照建议添加一个赋值方法,或者重载+=操作符来处理您可能提供给它的任何外部数据

InternalDataClass& operator+=(const ExternalDataSet& rhs)
{
  // ... Convert and Append External Data ...
  return *this;
}

那么问题是:

ExternalDataSet externalData;
InteranalDataClass idc;
idc+=externalData;