gpt4 book ai didi

c++基类到达子类变量

转载 作者:行者123 更新时间:2023-11-28 03:14:40 26 4
gpt4 key购买 nike

我有一个 C++ 问题,我需要将派生类的函数移动到基类以“清理”我的代码。这是我要移动的代码:

double Resistor::getVolt()
{
if (connection_a->getCharge() > connection_b->getCharge())
return connection_a->getCharge() - connection_b->getCharge();
else
return connection_b->getCharge() - connection_a->getCharge();
}
double Resistor::getCurr()
{
if (connection_a->getCharge() > connection_b->getCharge())
return (connection_a->getCharge() - connection_b->getCharge())/resistance;
else
return (connection_b->getCharge() - connection_a->getCharge())/resistance;
}

我需要移动所有这些并仍然访问变量 connection_aconnection_b 而不是私有(private)的。

最佳答案

class Component{
protected:
Component *connection_a, *connection_b;
virtual double getCharge();
public:
virtual ~Component();
};


class Resistor : public Component{
public:
virtual double getVolt();
virtual double getCurr();
virtual ~Resistor();
};

从 getVolt() 中,您可以自由读取父级的所有非私有(private)字段。不允许从基类直接访问派生类的任何变量。但是,您可以调用基类提供的虚方法,这些虚方法在派生类中被覆盖,因为知道将调用的方法取决于实例的类类型。

关于c++基类到达子类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17302912/

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