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