将 class 的所有成员复制到当前对象

Copy all members of a class to current object

假设我有一个名为 BaseClass 的基 class 和一个继承自 BaseClass 的名为 Foo 的对象。我可以将 BaseClass 实例的所有成员复制到正在创建的当前对象而不是手动执行吗?

class BaseClass
{
    int a;
    int b;
    int c;
    const char *e;
};

class Foo : BaseClass
{
public:

    Foo(BaseClass* bc, int x, const char *value)
    {
        // copy bc->a to this->a and bc->b to this->b 
        // and so on with all the members of BaseClass class
        this->x = x;
        this->s = value;
    }

    int x;
    const char *s;
};

我可以这样做吗? memcpy() 的另一种可能的解决方案,不确定它是否丑陋或无法工作,但假设成员按顺序分配,首先是 BaseClass,即这个 class 在内存中变成了类似的东西:

   struct
    {
        // members of BaseClass
        int a;
        int b;
        int c;
        const char *e;
        // members of Foo
        int x;
        const char *s;
    };

Foo 构造函数中的类似内容:

memcpy(this, &bc, sizeof(*bc));

应该将bc的所有成员复制到当前对象中,对吧?这是危险的吗?

顺便说一句,我正在以 C 风格执行此操作。我不太会 C++。非常欢迎使用 C++ 的方式。

更改 Foo 构造函数的声明以包含基类的构造函数 class:

Foo(BaseClass* bc, int x, const char *value): BaseClass(*bc)