作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了这个错误,并且已经搜索了 4-6 个小时来尝试找到解决方案,但是在我的特定情况下我的搜索都没有产生任何结果,所以这是我的 main.cpp。
#include <iostream>
#include <string>
#include "Entrepreneur.h"
#include <fstream>
using namespace std;
bool operator >(const Entrepreneur & Group1,const Entrepreneur & Group2)
{
if((Group1.Points > Group2.Points || Group1.Points == Group2.Points) && Group1.Profit > Group2.Profit )
{
return true;
}
else
{
return false;
};
};
ostream &operator<<( ostream &output,const Entrepreneur &Group1)
{
output <<"\nItem : " << Group1.Item << "\nNr : " << Group1.Nr << "\nDonation : R" << Group1.Donation << "\nStart up amount : R" << Group1.StartUpAmt << "\nExpenses : R" << Group1.Expenses <<"\nPoints : " << Group1.Points << "\nSold : " << Group1.Sold << endl;;
return output;
};
istream &operator>>( istream &input,const Entrepreneur & Group1)
{
cout << "Enter Items to be sold,Donation amount,number of members & startup amount. Seperated by a space." << endl;
input >> Group1.Item >> Group1.Donation >> Group1.Nr >> Group1.StartUpAmt;
return input;
};
int main()
{
return 0;
};
这是我的头文件。
#ifndef ENTREPRENEUR_H_INCLUDED
#define ENTREPRENEUR_H_INCLUDED
#include <iostream>
#include <string>
using namespace std;
class Entrepreneur{
private:
string Item;
int Nr;
double Donation;
double StartUpAmt;
double Expenses;
double Income;
double Profit;
int Points;
bool Sold;
public:
Entrepreneur(){
Item = "Not Decided";
Nr = 1;
Donation = 0;
StartUpAmt = 0;
Expenses = 0;
Income = 0;
Profit = 0;
Points = 0;
Sold = 0;
};
void CreatGroup(string iItem,int iNr,double iDonation,double iStartUpAmt){
Item = iItem;
Nr = iNr;
Donation = iDonation;
StartUpAmt = iStartUpAmt;
};
void DisplayGroup(){
cout << "\nItem : " << Item << "\nNr : " << Nr << "\nDonation : R" << Donation << "\nStart up amount : R" << StartUpAmt << "\nExpenses : R" << Expenses << "\nIncome : R" << Income << "\nProfit : R" << Profit << "\nPoints : " << Points << "\nSold : " << Sold << endl;
};
void set_info(double iExpenses,double iIncome,bool iSold){
Expenses = iExpenses;
Income = iIncome;
Sold = iSold;
};
void calc_profit(double iDonation,double iStartUpAmt,double iExpenses,double iIncome){
Donation = iDonation;
StartUpAmt = iStartUpAmt;
Expenses = iExpenses;
Income = iIncome;
Profit = Income + (StartUpAmt + Donation) - Expenses;
};
void update_points(){
Points = 0;
if(Nr < 3)
{
Points ++;
}
else
{
Points + 2;
}
if(Donation == 0)
{
Points ++;
}
if(Sold == 1)
{
Points ++;
}
};
void Display(){
cout << "Congratulations to all groups that partook in the challenge !" << endl;
};
friend bool operator >(const Entrepreneur & Group1,const Entrepreneur & Group2);
friend ostream &operator<<( ostream &output,const Entrepreneur & Group1);
friend istream &operator>>( istream &input,const Entrepreneur & Group1);
};
#endif // ENTREPRENEUR_H_INCLUDED
所以错误来自重载运算符的友元成员>>在 Entrepreneur.h 的企业家类中
friend istream &operator>>( istream &input,const Entrepreneur & Group1);
在 main.cpp 中:
istream &operator>>( istream &input,const Entrepreneur & Group1)
{
cout << "Enter Items to be sold,Donation amount,number of members & startup amount. Seperated by a space." << endl;
input >> Group1.Item >> Group1.Donation >> Group1.Nr >> Group1.StartUpAmt;
return input;
};
我在谷歌上通常 10 分钟就在这里碰壁了,我会修复它,但是这个让我变得更好。 PS当我开始测试时,这个程序还没有完成。提前致谢。
最佳答案
您正在尝试读入一个const
对象
istream &operator>>(istream &input, const Entrepreneur & Group1)
这就是为什么你的
input >> Group1.Item >> Group1.Donation >> Group1.Nr >> Group1.StartUpAmt;
不编译。去掉参数声明中的 const
。
一个不相关的问题
Points + 2;
这是空操作声明。
关于C++ 错误 : no match for 'operator>>' in 'input >> Group1->Entrepreneur::Item' |,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36407380/
我遇到了这个错误,并且已经搜索了 4-6 个小时来尝试找到解决方案,但是在我的特定情况下我的搜索都没有产生任何结果,所以这是我的 main.cpp。 #include #include #incl
如何从字符串中提取分隔符“”之间的字符串 “Rahulan” 我尝试使用 substring() 方法,但只能从主字符串中提取一个字符串。如何循环它并从主字符串中获取分隔符之间的所有字符串 最佳答案
我是一名优秀的程序员,十分优秀!