gpt4 book ai didi

c++ - 如何在 C++ 中使用继承序列化类

转载 作者:太空狗 更新时间:2023-10-29 12:34:55 25 4
gpt4 key购买 nike

我想序列化一个属于继承的类。我使用的是 C++98,没有第 3 方库。这是我的类结构:

class Base{
public:
virtual RunMe()=0;
};

class Derived: public Base{
virtual RunMe(){
std::cout << "I am running << std::endl;
}
};

我能够通过 friend 技术使用 ofstream 和 fstream 序列化一个基本类。但是我不知道如何在我的基类具有纯虚函数的情况下实现序列化。

最佳答案

将序列化支持方法添加到您的基类。
您的子类将首先调用基类支持方法,然后调用它们自己的方法。

class Base
{
public:
virtual void binary_write(ostream& out) // Serialization support function.
{
out.write(&m_base_variable, sizeof(m_base_variable));
}
private:
unsigned int m_base_variable;
};


class Derived
: public Base
{
public:
virtual void binary_write(ostream& out) // Serialization support function
{
Base::binary_write(out); // Call Base's method first;
out.write(m_derived_variable, sizeof(m_derived_variable));
}
private:
double m_derived_variable;
};

关于c++ - 如何在 C++ 中使用继承序列化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14286055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com