假设我有三个类:
typedef struct base
{
float A;
float B;
...
base() : A(1.0f), B(1.0f) {}
} base;
class derived1 : base
{
int C;
int D;
};
class derived2 : base
{
int E;
int F;
};
我想将基类数据从一个派生类对象复制到另一个。
执行以下操作是否安全,仅将 A、B 等的基类值从一个对象复制到另一个对象?
derived1* object1 = new derived1;
derived2* object2 = new derived2;
void make_object1()
{
object1->C = 2;
object1->D = 3;
}
void make_object2()
}
object2->A = 4;
object2->B = 5;
object2->E = 6;
object2->F = 7;
}
void transfer_base()
{
*((base*)object1) = *((base*)object2);
}
假设我的程序经常需要执行此类操作,是否有更好(更快的代码)方法来完成此操作?我这样做的原因是我编写了一个模拟和一个图形渲染器。我想尽可能有效地仅使用从模拟对象中选择的数据来更新图形显示对象。模拟是 CPU 密集型的......到目前为止,这种方法似乎正在奏效,但我担心我可能忽略了一些东西......