在我的计算机科学课上,我们正在学习如何使用类来创建虚拟电子组件......我们需要创建五件事; main()以及ElectricalComponent.h / .cpp,Resistor.h / .cpp,Capacitor.h / .cpp和Battery.h / .cpp。
我已经创建了电气元件类,我知道如何创建和修复主函数中的任何错误,但是我在构建电阻器类时遇到了问题。
Regex linkParser = new Regex(@"<a.*?>", RegexOptions.Compiled | RegexOptions.IgnoreCase);
foreach (Match m in linkParser.Matches(source))
{
if (m.Value.Contains("data-jobid"))
listBox1.Items.Add(m.Value);
}
我收到命名空间std没有成员to_string的错误,并且我的变量值和单位未声明。我理解未声明的变量意味着什么,但不理解to_string错误。
这是我给出的有关此课程的所有信息:
Resistor类将使用Resistor.h和 Resistor.cpp。 Resistor类将公开继承 ElectronicComponent。你需要实现一个析构函数和三个 虚函数getValue,getUnits和to_string。你也需要 一个构造函数,它接受一个输入参数,即。的值 电阻。值为double类型。 getValue函数需要 将值返回为double。 getUnits函数需要返回 “Ohm(s)”作为std :: string。
其他类应该以相同的方式构建,因此理解其中的工作方式应该可以帮助我很多。感谢。
答案 0 :(得分:3)
在标题中使用:
#include<string>
答案 1 :(得分:1)
派生的Resistor类中的函数不应指定为纯虚函数(由&#34; = 0&#34;表示)。纯虚函数是基类中没有基类实现的函数。此外,您的 getValue 和 getUnits 函数可能不是您的ElectronicComponent基类中的纯虚函数,但实际上是在那里实现的:
double ElectronicComponent::getValue() const {
return value;
}
std::string ElectronicComponent::getUnits() const {
return units;
}
在这种情况下,您在派生类中不需要它们。因此,您的派生Resistor类应该类似于:
#include <string>
#include "ElectronicComponent.h"
class Resistor : public ElectronicComponent
{
public:
Resistor(double);
virtual ~Resistor();
virtual std::string to_string() const;
};
Resistor::Resistor(double v) : units("Ohm(s)")
{
value = v;
}
std::string Resistor::to_string() const
{
return "Resistor value (" + std::to_string(value) + " " + units + ")";
}