如何在 main 函数的一个对象中初始化两个类的值?C++

How do I initialize values from two classes in one object in the main function? C++

本文关键字:两个 C++ 初始化 main 函数 一个对象      更新时间:2023-10-16

我正在尝试在一个对象中初始化来自两个类的变量。

例如,在主函数中,我有:

Worker Object("Kenny Smith",23425,"1/2/2012", "Third", 1, 12.00);

在工人类中,我有以下函数:

Worker::Worker(Store Name, Store Num, Store Date, string Shift, int ShiftNumber, double Rate)
{
    Store name = Name;
    Store number = Num;
    Store date = Date;
    shift = Shift;
    shiftnumber = ShiftNumber;
    rate = Rate;
}

当我尝试编译 main 函数时,它给了我一个错误,即"没有构造函数 Worker::Worker 的实例与参数列表匹配",因为名称、编号和日期来自 Store 类。我已经在 Worker 类中包含 Store 标头。

如何在不分离功能的情况下使其工作?

构造函数从 Store 类 "Kenny Smith" 中获取一个字符串,从 Store 类

23425 中获取一个整数,从 Store 类 "1/2/2012" 获取一个字符串,从 worker 类 "Third" 获取另一个字符串,从 worker 类 1 获取一个整数,从 worker 类 12.00 获取

一个双精度值。

您的商店类似乎接受字符串输入。

所以,我想这应该有效

Worker Object("Kenny Smith", "23425","1/2/2012", "Third", 1, 12.00);

请注意,第二个参数现在是一个字符串。

编辑:基于评论

class Store
{
  public:
  Store(string name, int num, string data) { ... }
  Store(string name) { ... }
  Store(int num) { ... }
}

我建议阅读一本C++书来了解构造函数的工作原理。

编辑

class Store
{
     string name_;
     int num_;
     int date_;
  public:
      Store(string name, int num, string date) { ... }
      Store(string name) { ... }
      Store(int num) { ... }
     const string& name() const { return name_ };
     string& name() {return name_};
}

现在来自您的辅助角色类

Worker(Store a, .... )
{
    a.name() = string("ABC");
}