gpt4 book ai didi

C++ 继承自在另一个类中用作类型的类

转载 作者:行者123 更新时间:2023-11-28 00:05:09 25 4
gpt4 key购买 nike

我有以下(简化的)C++ 代码。

class A
{

};

class B
{
public:
A addSomething(int something)
{
this->something = something;
}

private:
int something;
};

class C : public A
{

};

void main()
{
B variableB = B();

A variableA;
variableA = variableB.addSomething(123);

C variableC;
variableC = variableB.addSomething(456);
}

我有三个类:ABCB 被认为是主类或主类,而 CA 在我的上下文中代表子类。类 B 有一个公共(public)方法,其类型必须是 A 并向其私有(private)属性添加一个整数值。 C 类扩展了 A 类。

在主函数中,主类被实例化,其实例用于添加整数值,这工作得很好。但是,对从类 A 派生的实例执行相同的操作是行不通的。它返回一个错误说:

no operator "=" matches these operands

我知道这是由于在主类中 addSomething 函数具有类 A 的类型引起的,但我需要它与其一起工作 child 类也是如此。有没有办法让它在不改变类 B 的情况下工作?

最佳答案

您的目标是将 A 类型值赋予 C 类型值,这与类 B 无关'是生意。你需要做的是为类 C 编写构造函数并将值赋给 variableC

所以为C类添加代码:

class C : public A
{
public:
C() {}
C(A a){}
};

关于C++ 继承自在另一个类中用作类型的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36126755/

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