C++ 在C+中创建和实现类+;

C++ 在C+中创建和实现类+;,c++,class,c++11,header,inline,C++,Class,C++11,Header,Inline,在我的计算机科学课上,我们正在学习如何使用课堂来创建虚拟电气元件。。。我们需要创造五样东西;main()以及电气元件.h/.cpp、电阻器.h/.cpp、电容器.h/.cpp和电池.h/.cpp 我已经创建了Electrical component类,我知道如何创建和修复主函数中的任何错误,但是我在构建电阻器类时遇到了问题 #include <iostream> #include "ElectronicComponent.h" class Resistor : public

在我的计算机科学课上,我们正在学习如何使用课堂来创建虚拟电气元件。。。我们需要创造五样东西;main()以及电气元件.h/.cpp、电阻器.h/.cpp、电容器.h/.cpp和电池.h/.cpp

我已经创建了Electrical component类,我知道如何创建和修复主函数中的任何错误,但是我在构建电阻器类时遇到了问题

#include <iostream>
#include "ElectronicComponent.h"
class Resistor :
    public ElectronicComponent
{
public:
    Resistor(double);
    virtual ~Resistor();
    virtual double getValue() const = 0;
    virtual std::string getUnits() const = 0;
    virtual std::string to_string() const = 0;
};

Resistor::Resistor(double v)
{
    value = v;
}

std::string Resistor::to_string() const
{
    return "Resistor value (" + std::to_string(value) + " " + units + ")";
}
#包括
#包括“Electronic Component.h”
等级电阻器:
公共电子元件
{
公众:
电阻器(双);
虚拟电阻();
虚拟双getValue()常量=0;
虚拟std::string getUnits()const=0;
虚拟std::string to_string()const=0;
};
电阻器:电阻器(双v)
{
值=v;
}
标准::串电阻::to_string()常数
{
返回“电阻值(“+std::to_字符串(值)+”+“+units+”)”;
}
我收到的错误是,名称空间std没有要_字符串的成员,并且我的变量值和单位未声明。我理解未声明变量的含义,但不理解to_字符串错误

这是我得到的关于这门课的所有信息:

电阻器类将通过文件电阻器.h和 电阻.cpp。电阻器类将公开继承自 电子元件。您需要实现一个析构函数和三个 虚拟函数getValue、getUnits和to_string。你还需要 一个构造函数,它接受一个输入参数,即 电阻。该值的类型为double。getValue函数需要 以双精度形式返回值。getUnits函数需要返回 “欧姆”作为标准::字符串

其余的类应该以同样的方式构建,因此理解一个类如何工作应该对我有很大帮助。谢谢。

在标题中使用:

#include<string>
#包括
在标题中使用:

#include<string>
#包括

派生电阻器类中的函数不应指定为纯虚函数(以“=0”表示)。纯虚函数是基类中没有基类实现的函数。另外,假定您的getValuegetUnits函数在ElectronicComponent基类中不是纯虚拟的,但实际上在那里实现为:

double ElectronicComponent::getValue() const {
    return value;
}
std::string ElectronicComponent::getUnits() const {
    return units;
}
在这种情况下,在派生类中不需要它们。因此,派生的电阻器类应该如下所示:

#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 + ")";
}
#包括
#包括“Electronic Component.h”
类别电阻器:公共电子元件
{
公众:
电阻器(双);
虚拟电阻();
虚拟std::string to_string()常量;
};
电阻器:电阻器(双v):单位(“欧姆”
{
值=v;
}
标准::串电阻::to_string()常数
{
返回“电阻值(“+std::to_字符串(值)+”+“+units+”)”;
}

派生电阻器类中的函数不应指定为纯虚函数(以“=0”表示)。纯虚函数是基类中没有基类实现的函数。另外,假定您的getValuegetUnits函数在ElectronicComponent基类中不是纯虚拟的,但实际上在那里实现为:

double ElectronicComponent::getValue() const {
    return value;
}
std::string ElectronicComponent::getUnits() const {
    return units;
}
在这种情况下,在派生类中不需要它们。因此,派生的电阻器类应该如下所示:

#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 + ")";
}
#包括
#包括“Electronic Component.h”
类别电阻器:公共电子元件
{
公众:
电阻器(双);
虚拟电阻();
虚拟std::string to_string()常量;
};
电阻器:电阻器(双v):单位(“欧姆”
{
值=v;
}
标准::串电阻::to_string()常数
{
返回“电阻值(“+std::to_字符串(值)+”+“+units+”)”;
}

您是如何编译的?您是如何编译的?