【发布时间】:2021-06-26 08:01:27
【问题描述】:
参数设置有两个类
class AParameters
{
public:
AParameters();
int test1 = 0;
int test2 = 0;
};
class BParameters : public AParameters
{
public:
BParameters();
int test3 = 0;
int test4 = 0;
};
还有两个类供测试
class A
{
public:
A();
void SetParameters(AParameters);
BParameters GetParameters();
private:
AParameters a;
};
class B : public A
{
public:
B();
void SetParameters(BParameters);
BParameters GetParameters();
private:
BParameters b;
};
我想设置A的参数(a),并且可以将值同步到B的参数(b)。
并设置B的参数(b)可以将值同步到A的参数(a)。
例如:
B *myB = new B;
A *mya = myB;
AParameters aa;
aa.test1 = 1;
aa.test2 = 2;
mya->SetParameters(aa);
auto data = myB->GetParameters();
我想看数据的结果是
data.test1 = 1; data.test2 = 2;
不是
data.test1 = 0; data.test2 = 0;
因为BParameters继承了AParameters,有没有办法实现呢?
【问题讨论】:
-
当然,有很多方法。问题是不同的
As 和Bs 之间的关系是什么。如果它们都共享参数,您可以使用static类成员。如果只是其中一些共享参数,那么该关系商店是如何定义的? -
@super 对不起,A 和 B 的关系是什么意思?我假设A和B的代码就是这样,B继承A。我想连接B类中的BParameters b和A类中的AParameters a的数据
-
我只需要得到像“示例”这样的结果。你能尝试实现你的方法吗?
-
你需要的是解释你想要什么。假设您创建了第二个
B。假设一个还与A和第一个B共享参数? -
哦,等等。只有一个例子。误读了你的例子。那么为什么它们有不同的参数类呢?似乎你可以在
A中添加一个BParameters并完成它?
标签: c++ pointers inheritance