我需要创建一个工厂函数来创建一个实例,该实例可以接受具有不同数量参数的任何类型。
我有两个类Employee和contact,并通过单个工厂函数为这两个类创建一个实例
我不知道该怎么做。帮我做那个
class Employee
{
std::string m_name;
int m_id;
int m_salary{};
public:
template<typename T1, typename T2>
Employee(T1&& name, T2&& id, T2&& salary)
: m_name{ std::forward<T1>(name) }, m_id{ id }, m_salary{ salary }
{
std::cout << "template Employee constructor" << std::endl;
}
};
class Contact
{
std::string m_name;
long long int m_number;
std::string m_address;
std::string m_mail;
public:
template<typename T1, typename T2>
Contact(T1&& name, T2&& num, T1&& addr, T1&& mail)
:m_name{ std::forward<T1>(name) }, m_number{ num }, m_address{ std::forward<T1>(addr) }, m_mail{ std::forward<T2>(mail) }
{
std::cout << "template Contact constructor" << std::endl;
}
};
template<typename T1, typename T2>
Employee* createObject(T1&& a, T2&& b, T2&& c)
{
return new Employee{ std::forward<T1>(a), b, c };
}
我尝试了一个为雇员类创建实例的函数。但我不知道这两门课该怎么办