注意:这是一个任务。我正在寻找使用联合的解决方案,因为它是任务的一部分。我提供了我想使用的解决方案,但我需要帮助来理解这个概念和方法。---
我知道字符串在工会中是如何不起作用的,并且这个问题之前已经被问过 - 但他们似乎都结束了建议 Boost. 但是,我看到有人提出建议,但似乎被忽略了,我想对此进行更多说明。下面我有两个结构,一个包含指向这两个结构的指针的联合作为一种解决方法:
struct HourlyInfo {
string firstName;
string lastName;
string title;
int hoursWorked;
double hourlyRate;
};
struct SalaryInfo {
string firstName;
string lastName;
string title;
double salary;
double bonus;
};
union Employee {
HourlyInfo *hourlyEmployee;
SalaryInfo *salaryEmployee;
};
这种方法有什么问题吗?对我来说,这似乎违背了工会的目的。
编辑:这是一个任务,但它是非常开放的。我不是在寻找答案,只是对为什么可能或应该避免某种方法的解释和输入。我的替代方法是 using cstring
,但我试图权衡指针方法(为了方便string
)与仅使用cstring
.
编辑#2:我知道一旦定义了另一个结构,联合就会使一个结构无效。我将创建这些工会的数组,并且在这种情况下使用工会是有道理的,因为任何员工都是小时工或薪水。我担心的是使用字符串和指针作为解决方法。