C ++:将对象添加到集合中

user_537

我在将对象添加到集合时遇到麻烦。

我在头文件中使用两个类,一个用于雇员,第二个用于经理。在经理类中,我想通过添加作为特定经理下属的员工来创建一组员工。首先,我创建一个空集,可以通过调用一个函数为其添加对象。

它看起来如下:

头文件

#ifndef EMPLOYEE_HH
#define EMPLOYEE_HH

#include <set>
#include <string>
#include <iostream>

using namespace std ;

class Employee {
    public:
      // Constructor
      Employee(const char* name, double salary) :
         _name(name),
         _salary(salary) {
      }

      // Accessors
      const char* name() const { 
         return _name.c_str() ;
      }
      double salary() const {
         return _salary ;
      }

    private:
      string _name ;
      double _salary ;

} ;

class Manager : public Employee {
    public:
      //Constructor
      Manager(const char* _name, double _salary):
         Employee(_name, _salary),
         _subordinates() {
      }

      // Accessors/Modifiers
      void addSubordinate(Employee& empl) {
         _subordinates.insert(empl) ;     // Error: no macthing function call for .insert()    
      }

    private:
      set<Employee*> _subordinates ;        

} ;

#endif  

主脚本

#include <string>
#include <iostream>
#include "Employee.hh"

using namespace std ;

int main() {

    Employee emp = ("David", 10000) ;

    Manager mgr = ("Oscar", 20000) ;

    mgr.addSubordinate(emp);    

    return 0;

}

编译时出现错误,提示无法调用任何匹配函数_subordinates.insert(empl)

songyuanyao

元素的类型setEmployee*,但您要插入Employee

您可能会更改_subordinates.insert(empl);_subordinates.insert(&empl);

(更改的类型_subordinatesset<Employee*>set<Employee>可以修复编译器错误过,但似乎不符合要求。)

请注意,正如@KenmanTsang指出的那样,使用从堆栈变量获取的指针可能很危险。考虑有关使用智能指针new,如std::set<std::unique_ptr<Employee>> _subordinates;

顺便提一句:

Employee emp = ("David", 10000) ;
Manager mgr = ("Oscar", 20000) ;

应该

Employee emp ("David", 10000) ;
Manager mgr ("Oscar", 20000) ;

或(自c ++ 11起)

Employee emp = {"David", 10000} ;
Manager mgr = {"Oscar", 20000} ;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++:将对象添加到集合中

来自分类Dev

C ++:将对象添加到当前对象

来自分类Dev

在列表中将对象的字段添加到C#中的列表中

来自分类Dev

将对象数组添加到 C# 中的列表视图

来自分类Dev

在Objective-C中将对象添加到NSMutableArray

来自分类Dev

在C#中将对象添加到列表

来自分类Dev

C#:如何将对象添加到数组?

来自分类Dev

将对象添加到链接列表C ++

来自分类Dev

C ++-在循环中实例化将对象添加到std :: vector

来自分类Dev

关于C#使用foreach循环将对象添加到列表

来自分类Dev

在C ++中将对象添加到2D矢量

来自分类Dev

C#在将对象添加到列表时做一些事情

来自分类Dev

尝试将对象添加到向量时出现错误C2280

来自分类Dev

将对象添加到NSMutableArray时,Objective-c程序崩溃

来自分类Dev

在开始在C#中循环之前将项目添加到集合中

来自分类Dev

使用传播语法将对象添加到集合元素

来自分类Dev

C#并行-将项目添加到要迭代的集合中,还是等效?

来自分类Dev

CQRS / DDD如何使用命令将对象添加到集合中?

来自分类Dev

我可以结合使用LINQ和用于将对象添加到集合中的foreach吗?

来自分类Dev

如何在Java中将对象添加到集合中?

来自分类Dev

将对象添加到VBA中的集合-> OOP-Basics?

来自分类Dev

如何在指定索引处将对象添加到jQuery集合中?

来自分类Dev

将对象添加到扩展数组的JS集合中(继承?)

来自分类Dev

如何使用反射添加到集合-C#

来自分类Dev

将项目添加到列表对象 c# 中的属性(列表对象类型)

来自分类Dev

Boost.Python:Python中C ++对象的inheret:无法添加到C ++基类列表

来自分类Dev

Boost.Python:Python中C ++对象的inheret:无法添加到C ++基类列表

来自分类Dev

如何在C#中迭代JSON并将每个对象添加到列表中?

来自分类Dev

在方法中实例化并添加到C#中Collection的对象的持久性

Related 相关文章

  1. 1

    C ++:将对象添加到集合中

  2. 2

    C ++:将对象添加到当前对象

  3. 3

    在列表中将对象的字段添加到C#中的列表中

  4. 4

    将对象数组添加到 C# 中的列表视图

  5. 5

    在Objective-C中将对象添加到NSMutableArray

  6. 6

    在C#中将对象添加到列表

  7. 7

    C#:如何将对象添加到数组?

  8. 8

    将对象添加到链接列表C ++

  9. 9

    C ++-在循环中实例化将对象添加到std :: vector

  10. 10

    关于C#使用foreach循环将对象添加到列表

  11. 11

    在C ++中将对象添加到2D矢量

  12. 12

    C#在将对象添加到列表时做一些事情

  13. 13

    尝试将对象添加到向量时出现错误C2280

  14. 14

    将对象添加到NSMutableArray时,Objective-c程序崩溃

  15. 15

    在开始在C#中循环之前将项目添加到集合中

  16. 16

    使用传播语法将对象添加到集合元素

  17. 17

    C#并行-将项目添加到要迭代的集合中,还是等效?

  18. 18

    CQRS / DDD如何使用命令将对象添加到集合中?

  19. 19

    我可以结合使用LINQ和用于将对象添加到集合中的foreach吗?

  20. 20

    如何在Java中将对象添加到集合中?

  21. 21

    将对象添加到VBA中的集合-> OOP-Basics?

  22. 22

    如何在指定索引处将对象添加到jQuery集合中?

  23. 23

    将对象添加到扩展数组的JS集合中(继承?)

  24. 24

    如何使用反射添加到集合-C#

  25. 25

    将项目添加到列表对象 c# 中的属性(列表对象类型)

  26. 26

    Boost.Python:Python中C ++对象的inheret:无法添加到C ++基类列表

  27. 27

    Boost.Python:Python中C ++对象的inheret:无法添加到C ++基类列表

  28. 28

    如何在C#中迭代JSON并将每个对象添加到列表中?

  29. 29

    在方法中实例化并添加到C#中Collection的对象的持久性

热门标签

归档