我正在尝试从一个对象中的两个类初始化变量。
例如,在main函数中,我有:
Worker Object("Kenny Smith",23425,"1/2/2012", "Third", 1, 12.00);
在worker类中,我有以下功能:
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”中的字符串,工人类“Third”中的另一个字符串, worker类1中的整数,以及worker类12.00中的double。
答案 0 :(得分:-1)
您的商店类似乎需要字符串输入。
所以,我想这应该有用
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");
}