Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;“无操作员”&燃气轮机&燃气轮机&引用;匹配这些操作数(<;字符串>;包含在标头中)_C++_Operator Keyword_Operand - Fatal编程技术网

C++ C++;“无操作员”&燃气轮机&燃气轮机&引用;匹配这些操作数(<;字符串>;包含在标头中)

C++ C++;“无操作员”&燃气轮机&燃气轮机&引用;匹配这些操作数(<;字符串>;包含在标头中),c++,operator-keyword,operand,C++,Operator Keyword,Operand,我目前正在编写一些代码,我必须在main中声明一个数组,并创建一个函数,允许我获取用户输入并将其存储到数组中。我已经开始了,但是我遇到了错误binary'>>”:没有找到接受类型为“CDistance”的右操作数的运算符我的代码中也包含了#include。下面的函数void inputDist(CDistance distList[],int size)中出现错误。下面是完整的代码。感谢所有和任何反馈。谢谢 #include <iostream> #include <conio

我目前正在编写一些代码,我必须在main中声明一个数组,并创建一个函数,允许我获取用户输入并将其存储到数组中。我已经开始了,但是我遇到了错误
binary'>>”:没有找到接受类型为“CDistance”的右操作数的运算符
我的代码中也包含了
#include
。下面的函数
void inputDist(CDistance distList[],int size)
中出现错误。下面是完整的代码。感谢所有和任何反馈。谢谢

#include <iostream>
#include <conio.h>
#include <string>

using namespace std;

class CDistance
{
private:
    int feet;
    int inches;
    int feet2;
    int inches2;

public:
    CDistance();
    CDistance(int, int, int, int);
    ~CDistance();
    CDistance printAndAdd(const CDistance distList[], int size);
    void setDistt();
    void printDistt() const;
    void add(const CDistance&) const;
    void subtract(const CDistance&) const;
    void menu(const CDistance&) const;
    void inputDist(CDistance distList[], int size);
};

CDistance::CDistance()
{
    feet;
    inches;
    feet2;
    inches2;
}

CDistance::CDistance(int f, int i, int f2, int i2)
{
    feet = f;
    inches = i;
    feet2 = f2;
    inches2 = i2;
}

CDistance::~CDistance()
{
}

void CDistance::setDistt()
{
    cout << "Enter the first set of feet: ";
    cin >> feet;
    cout << "\nEnter the second set of feet: ";
    cin >> feet2;
    cout << "\nEnter the first set of inches: ";
    cin >> inches;
    cout << "\nEnter the second set of inches: ";
    cin >> inches2;
}

void CDistance::printDistt() const
{
    cout << "Feet: " << feet << "," << feet2 << endl << "Inches: " << inches << "," << inches2 << endl;
}

void CDistance::add(const CDistance& total) const
{
    int totFeet = feet + feet2;
    int totInches = inches + inches2;
    if (totInches >= 12)
    {
        totInches = totInches / 12;
        int newFeet = totInches;
        totFeet = totFeet + newFeet;
    }
    cout << totFeet << " feet" << endl;
    cout << totInches << " inches" << endl;
}

void CDistance::subtract(const CDistance& total) const
{
    int totFeet = feet - feet2;
    int totInches = inches - inches2;
    if (totInches >= 12)
    {
        totInches = totInches / 12;
        int newFeet = totInches;
        totFeet = totFeet - newFeet;
    }
    cout << totFeet << " feet" << endl;
    cout << totInches << " inches" << endl;
}

void CDistance::menu(const CDistance& total) const
{
    CDistance m(feet, inches, feet2, inches2);
    int choice;
    bool menuGo = true;


    while (menuGo != false)
    {
        {
            cout <<
                "\nWhat would you like to do?"
                "\n1: Add "
                "\n2: Subtract "
                "\n3: Exit" << endl;
            cin >> choice;
        }

        switch (choice)
        {
        case 1:
            cout << "You chose to add" << endl;
            m.add(total);
            break;
        case 2:
            cout << "You chose to subtract" << endl;
            m.subtract(total);
            break;
        case 3:
            cout << "Please enter 5 digits to enter into the array: ";
            m.inputDist;
        case 4:
            cout << "Goodbye" << endl;
            menuGo = false;
            break;
        default:
            cout << "Not a valid choice." << endl;
            cout << "Choose again." << endl;
            cin >> choice;
            break;
        }
    }
}

void inputDist(CDistance distList[], int size)
{
    int dist = 0;
    for (int i = 0; i < 6; i++)
    {
        cin >> distList[i];
    }
}

//CDistance printAndAdd(const CDistance distList[], int size);
int main()
{
    CDistance d1, d2(0, 0, 0, 0);

    CDistance distList[5];

    d1.setDistt();
    d1.printDistt();
    d1.menu(d2);
    inputDist(distList, 0);
    _getch();
    return 0;
}
#包括
#包括
#包括
使用名称空间std;
类距离
{
私人:
内特英尺;
整数英寸;
int feet2;
int英寸2;
公众:
距离();
距离(int,int,int,int);
~CDistance();
C距离打印和添加(常量C距离列表[],整数大小);
void setDistt();
void printdist()常量;
void add(const CDistance&)const;
空减法(常数CDistance&)常数;
无效菜单(const CDistance&)const;
void inputDist(CDistance distList[],int size);
};
CDistance::CDistance()
{
脚;
英寸;
感觉2;
英寸2;
}
距离:距离(intf,inti,intf2,inti2)
{
英尺=f;
英寸=i;
feet2=f2;
英寸2=i2;
}
CDistance::~CDistance()
{
}
void CDistance::setDistt()
{
cout>脚;
cout>feet2;
不能>英寸;
cout>英寸2;
}
void CDistance::printdist()常量
{

coutCDistance是一个自定义类型,cin没有设置其值的接口

void inputDist(CDistance distList[], int size)
{
    int dist = 0;
    for (int i = 0; i < 6; i++)
    {
        cin >> distList[i]; //<- invalid
    }
}
void inputDist(CDistance distList[],int size)
{
int-dist=0;
对于(int i=0;i<6;i++)
{
cin>>distList[i];/>英尺;
整数英寸;cin>>英寸;
int feet2;cin>>feet2;
int英寸2;cin>>英寸2;
距离列表[i]=距离(英尺、英寸、英尺2、英寸2);
}
}

CDistance是一种自定义类型,cin没有设置其值的接口

void inputDist(CDistance distList[], int size)
{
    int dist = 0;
    for (int i = 0; i < 6; i++)
    {
        cin >> distList[i]; //<- invalid
    }
}
void inputDist(CDistance distList[],int size)
{
int-dist=0;
对于(int i=0;i<6;i++)
{
cin>>distList[i];/>英尺;
整数英寸;cin>>英寸;
int feet2;cin>>feet2;
int英寸2;cin>>英寸2;
距离列表[i]=距离(英尺、英寸、英尺2、英寸2);
}
}

如果要将
cin>>变量
用于自定义类型,则必须声明自己的
运算符>>
,否则编译器无法知道您实际希望如何读取值。在这种情况下,一种可能的方法是:

friend std::istream& operator>>(std::istream& is, CDistance& dist);
在类的主体内声明它为友元函数,然后在类的外部定义它

std::istream& operator>>(std::istream& is, CDistance& dist) {
    is >> dist.feet >> dist.inches >>
          dist.feet2 >> dist.inches2;
    return is;
}

另一方面,默认构造函数不执行任何操作:

CDistance::CDistance()
{
    feet;       // evaluate feet and discard it as you don't do anything with it.
    inches;     // same
    feet2;      // same
    inches2;    // same
}
您可能希望将其设置为默认值:

CDistance::CDistance()
{
    feet = inches = feet2 = inches2 = 0;
}

将它们全部设置为默认值
0

如果要将
cin>>变量
与自定义类型一起使用,则必须声明自己的
运算符>
,否则编译器无法知道您实际希望如何读取值。在这种情况下,一种可能的方法是:

friend std::istream& operator>>(std::istream& is, CDistance& dist);
在类的主体内声明它为友元函数,然后在类的外部定义它

std::istream& operator>>(std::istream& is, CDistance& dist) {
    is >> dist.feet >> dist.inches >>
          dist.feet2 >> dist.inches2;
    return is;
}

另一方面,默认构造函数不执行任何操作:

CDistance::CDistance()
{
    feet;       // evaluate feet and discard it as you don't do anything with it.
    inches;     // same
    feet2;      // same
    inches2;    // same
}
您可能希望将其设置为默认值:

CDistance::CDistance()
{
    feet = inches = feet2 = inches2 = 0;
}

将它们全部设置为<代码> 0代码>默认值> < /P>这是它所定义的…没有定义的操作符允许你从<代码> CIN < /代码>中读取<代码>距离>代码。停止使用Culi.h。它不是C++标准库的一部分。这有编译错误,其他的都是你所发布的,在所有地方都是。恩,如果你仍然需要帮助,你可以再问一遍。这就是它所说的……没有操作符定义,你可以从<代码> CIN 中读取<代码>距离>代码。停止使用CONIO。h。它不是C++标准库的一部分。它有编译错误,其他的都是你所发布的。你仍然需要帮助,你可以再问一次。@RSahu谢谢你的提醒,完全错过了那个错误…@RSahu谢谢你的提醒,完全错过了那个错误。。。