- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
主题(我的意思是重载运算符、默认和复制构造函数等)对我来说是新事物,我真的不得到它。我试图避免它,但它还是捕获了我。我有一个容器 std::vector<Employee>
与对象。甚至以为我不使用 = operator
我得到错误: C2280 'Employee &Employee::operator =(const Employee &)': attempting to reference a deleted function
.
如果我删除 employees.erase(employees.begin() + 1);
这行,错误就会停止
我发现这是一个常见问题,但我仍然找不到任何解决方案。请看代码:
#include <iostream>
#include <ostream>
#include <string>
#include <vector>
class Employee
{
public:
std::string name, profession;
std::string current_task = "NONE";
int id, age, warrings;
std::vector<std::string>& tasks;
Employee::Employee(std::vector<std::string>& tasks) : tasks(tasks)
{
warrings = 0;
};
virtual void AssignNewTask(std::string input_string)
{
for (unsigned int i = 0; i < tasks.size(); i++)
{
if (input_string == tasks[i])
{
current_task = input_string;
std::cout << ">> Przydzielony nowy task!" << std::endl;
return;
}
}
std::cout << input_string << "nie nalezy do listy obowiazkow " << profession << std::endl;
}
};
class HR : public Employee
{
private:
static std::vector<std::string> tasks;
public:
HR::HR() : Employee(tasks)
{
Employee::profession = "HR Specialist";
}
};
class Helpdesk : public Employee
{
private:
static std::vector<std::string> tasks;
public:
Helpdesk::Helpdesk() : Employee(tasks)
{
Employee::profession = "Helpdesk Technician";
}
};
std::vector<std::string> HR::tasks = { "HR task" };
std::vector<std::string> Helpdesk::tasks = { "Helpdesk task" };
bool operator==(const Employee & obj, const std::string & std)
{
if ((obj.name == std) || (std == obj.name))
{
return true;
}
else
{
return false;
}
}
int main()
{
std::vector<Employee> employees;
std::cout << "Welcome message" << std::endl;
// it works
employees.push_back(HR());
employees.push_back(Helpdesk());
// it also works
employees.pop_back();
employees.push_back(Helpdesk());
// the issue occurs !
employees.erase(employees.begin() + 1);
system("pause");
}
我想我应该重载 = operator
但我什至不知道如何开始。我已经标记了问题发生的地方。
最佳答案
问题出在这里:
class Employee
{
public:
std::string name, profession;
std::string current_task = "NONE";
int id, age, warrings;
std::vector<std::string> *tasks; // <=== use a pointer
Employee(std::vector<std::string>& tasks) : tasks(&tasks)
{
warrings = 0;
};
你不能定义一个 operator= 因为你不能分配一个引用(任务)。去掉引用就万事大吉了(可能慢点,但更安全)
关于c++ - 错误 C2280;执行 employees.erase() 时出现 operator =(const Employee &) 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36359875/
我正在阅读 MVC 5 教程 ( Learn MVC Project in 7 days – Day 2 )。它说要使用此代码: List employees = new List(); 我得到一条红
我是 hibernate 新手当我尝试执行下面的代码时,我遇到了以下异常: org.hibernate.InvalidMappingException: 无法从资源 Employee.hbm.xml
我正在尝试来自 TCPL 的派生类示例。 经理是一种具有附加级别信息的员工。我一直收到错误: no matching function for call to employee::employee()
我正在尝试从 Firestore 数据库加载我的员工集合,并且我想为每个员工加载一个“工作日”,这是一个“员工”子集合的文档。这是我的代码: loadEmployees() { return
早上好,我的任务是: 将 CommissionEmployee 类重写为 Employee 的子类。 CommissionEmployee 应仅包含未在父类(super class) Employee
我正在学习 Java,我在 Youtube 上看到了下面的代码。我只是想知道这部分代码是如何工作的。 static final Comparator SENIORITY_ORDER =
如何转换List至Map> . 群组List基于员工对象中存在的depId,映射键是depId。 java.util.* 或 Google Guava 中是否有任何方法可以在不迭代列表的情况下进行转换
我有以下程序。 Employee employee1 = new Employee("Raghav1", 101); Employee employee2 = new Employee("Raghav
主题(我的意思是重载运算符、默认和复制构造函数等)对我来说是新事物,我真的不得到它。我试图避免它,但它还是捕获了我。我有一个容器 std::vector与对象。甚至以为我不使用 = operator
如何在 Java 8 中设置过滤器中的值?我想将 emailId 设置为 null,其中 firstName 是 Raj。我如何在 Java8 中做到这一点? public class Employe
打印工资超过所有员工平均工资的每位员工的姓名他或她的部门。 emp(eid:整数,ename:字符串,年龄:整数,薪水:实数) works(eid:整数,did:整数,pct_time:整数) 部门(
在这个JDO中,为什么这里需要.class? Query averageSalaryQuery = pm.newQuery(Employee.class); 如果可能,我更愿意编写这种更简洁的语法?
对于每一年,对于每一位员工,我想列出员工提交的审核状态,或者“未启动”,以防员工当年没有提交审核。 用文字表达这个问题有点困难,所以我会尝试通过举例来解释它: create table #employ
我有这 2 个表,Medication 包含:IDMedication、IDCategory、Name 和 Supplier,其中包含:IDSupplier、Name。我想自动创建一个关系表 Medi
我在做一个散列函数,它不会编译,我复制了下面的函数。谢谢你的帮助,请原谅我的英语 template bool FHhashSC::contains(const Object & x) const {
请告诉我我的错误在哪里。我需要添加一个名为 kanganyname (经理名称)的新字段。但这给了我一个错误。我按照开发者指南进行了此修改: 这是我的 view.xml checkroll.
我正在尝试为我的表列重新设定种子但出现错误 'Employees' does not contain an identity column 我检查了我的表,它确实有一个 ID 列。 DDL CREAT
只是一个学术问题,为什么许多编程语言都具有以下类似的实例化语法: Employee emp = new Employee() 我的意思是,我们不使用Employee emp = new Vehicle
我遇到了这个问题,我看了几个帖子,请回复我如何解决这个问题。下面是我的代码 Controller 类 在第三行我收到错误: The entity type Employee is not part o
鉴于以下数据: EMPID NAME SALARY DID 1 kevin 32000 2 2 joan 42000 1 3 bria
我是一名优秀的程序员,十分优秀!