如何在主函数的一个对象中初始化两个类的值? C++
Posted
技术标签:
【中文标题】如何在主函数的一个对象中初始化两个类的值? C++【英文标题】:How do I initialize values from two classes in one object in the main function? C++ 【发布时间】:2018-03-08 06:44:58 【问题描述】:我正在尝试从一个对象中的两个类初始化变量。
例如,在主函数中,我有:
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”中获取另一个字符串,工人阶级 1 的整数,工人阶级 12.00 的双精度数。
【问题讨论】:
请发minimal reproducible example。 aee 需要的详细信息正是minimal reproducible example。请仔细阅读minimal reproducible example 的含义。 你的代码没有意义。如果你需要传递一个 store,你的构造函数应该接受一个 Store 对象。如果你需要传递一个字符串、一个数字和另一个字符串,那么你的构造函数应该接受这些。 Worker 构造函数需要一堆 Store 参数,你只能使用字符串来构造一个,除非你有其他代码允许你这样做,否则这是无法完成的。在您发布更多代码之前,我认为没有人能理解。 构造函数从 Store 类 "Kenny Smith" 中获取一个字符串,从 Store 类 23425 中获取一个整数,从 Store 类 "1/2/2012" 中获取一个字符串,从 worker 类中获取另一个字符串“第三”,一个来自工人阶级 1 的整数,一个来自工人阶级 12.00 的双精度数。 【参考方案1】:您的 Store 类似乎需要字符串输入。
所以,我想这应该可行
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 类
Worker(Store a, .... )
a.name() = string("ABC");
【讨论】:
对不起,我应该澄清一下。它是一个整数。 函数本身就是Store(string Name, int Num, string Date); 那么你应该传递 Worker 对象( Store("Kenny Smith", num, date), .... )。或者你应该在 Store 类中定义可以使用字符串和整数参数初始化类成员的构造函数。 我也试过了,但它仍然给我同样的错误。另外,是否可以从 Worker 类初始化 Store 类成员? 是的,我想那样在 Store 类中创建一个构造函数,但是这样会使我在主要问题中编写的构造函数变得不必要。我想在 Worker 类中包含 Store 类中的变量。以上是关于如何在主函数的一个对象中初始化两个类的值? C++的主要内容,如果未能解决你的问题,请参考以下文章