C++ 操作员<&书信电报;必须只接受一个参数
我写的课程有一个错误,我不明白问题出在哪里 这是工人阶级:C++ 操作员<&书信电报;必须只接受一个参数,c++,C++,我写的课程有一个错误,我不明白问题出在哪里 这是工人阶级: #ifndef __Worker__ #define __Worker__ #include <iostream> #include <string> class Worker{ protected: std::string name; int id; int salary; public: Worker(const std:
#ifndef __Worker__
#define __Worker__
#include <iostream>
#include <string>
class Worker{
protected:
std::string name;
int id;
int salary;
public:
Worker(const std::string& name, int id, int salary);
Worker(const Worker& worker );
friend std::ostream& operator<<(std::ostream& os, const Worker& w);
int getWorkerID(){
return this->id;
}
int getsSalary(){
return this->salary;
}
std::string getname(){
return this->name;
}
};
#endif
\ifndef\uu工人__
#定义\uuuu工作者__
#包括
#包括
班主任{
受保护的:
std::字符串名;
int-id;
国际工资;
公众:
工人(const std::字符串和名称、整数id、整数工资);
工人(施工工人和工人);
friend std::奥斯特雷姆和运营商实验室;
}
std::string getname(){
返回此->名称;
}
};
#恩迪夫
这是这个类的实现:
#include "Worker.hpp"
Worker::Worker(const std::string &names, int ids, int salarys) :
name(names), id(ids), salary(salarys)
{
}
Worker::Worker(const Worker &worker):
name(worker.name), id(worker.id), salary(worker.salary)
{
}
std::ostream& Worker::operator<<(std::ostream& os, const Worker& w)
{
os << "worker name:" << w.getname() << " id:" << std::to_string(w.getWorkerID()) << " salary:"<<std::to_string(w.getsSalary()) ;
return os;
}
#包括“Worker.hpp”
Worker::Worker(const std::string&name、int-id、int-salary):
姓名、身份证、工资
{
}
工人::工人(施工工人和工人):
姓名(worker.name)、id(worker.id)、工资(worker.salary)
{
}
std::ostream&Worker::operator实现代码中的这一行:
std::ostream&Worker::operatorA friend不是成员,因此只需删除Worker::
前缀.s/Worker::operator可能与您的问题和问题无关,但以两个下划线开头的符号(如\uuuuuuuuuuuuuuuuuuuuuu
)在所有作用域中都保留。请阅读以了解更多详细信息。@Eliorstiel:是的,它仍然不起作用,但错误消息将完全不同!当你说它“仍然不起作用”时,请不要忘记提及这样一个重要的事实。我的回答也解释了如何修复其他错误。
std::ostream& Worker::operator<<(std::ostream& os, const Worker& w)
std::ostream& operator<<(std::ostream& os, const Worker& w)