如何创建一个派生类,它可以更改其基类实例中的所有变量?我知道我可以将基类变量声明为静态的,但是当我这样做时,我无法使用函数初始化它们,这使得代码非常有信息并且难以编辑。
这是一个示例类;为什么 c2 不编辑 theC1 类中的 x。如果它引用了一个不是 theC1 的 c1 类,那么引用的是什么?
#include <stdio.h>
class c1
{
public:
c1( int d )
{
x = d;
}
int x;
};
class c2 : public c1
{
public:
c2( c1& ref )
:
c1( ref )
{};
void setx()
{
x = 5;
}
};
int main ()
{
c1 theC1(4);
c2 theC2(theC1);
theC2.setx();
printf( "%d\n",theC1.x );
printf( "%d\n",theC2.x );
return 0;
}