如何向两个上层超类发送多个值
C++ How send multiple values to two upper superclass?
首先考虑工厂系统。我创建了一个Date类来保存人的生日和开始工作的日期我还有person类,它保存人名,姓氏等信息。最后有一个部门类,我想初始化所有关于个人和部门id和部门名称的信息(姓名,姓氏…(如生日、入职日期)。我在部门头文件中创建了Person类型的数组。我的问题是,我怎么能写部门构造初始化所有属性。名字、姓氏没有问题……但是Date类需要3个参数。我怎么能发送那里的参数与其他参数从部门类?
class Date {
int gun,ay,yil;
public:
int getDay()const;
int getMonth()const;
int getYear()const;
void set_Day(int);
void setMonth(int);
void setYear(int);
Date();
Date(int,int,int);
virtual ~Date();
}
class Deparment
{
int bolumId;
string bolumName;
static const int maxkisi = 10;
Person *PersonArray = new Person[maxkisi];
static int counter;
Date datex,datey;
public:
int getBolumId()const;
string getBolumName()const;
int getTemelMaas()const;
Person getPersonArray()const;
void setBolumId(int);
void setBolumName(string);
void setKisiarray(string,string,int,int);
Bolum();
Bolum(string,string,int,Date,Date,int,string);
virtual ~Bolum();
}
有两种方法:
- 在类的构造函数中取一个
Date
对象,或者 - 在类的构造函数中接受日期的参数。
这两种方法各有利弊:
第一种方法对调用者隐藏了Date
获取的参数,因此调用者可以以任何他希望的方式构造Date
:
Person(const string& _name, const string& _surname, const Date& _dob)
: name(_name), surname(_surname), dob(_dob) {
}
第二种方法让您对调用者隐藏Date
,如果您的类没有将Date
公开为外部可见属性,这是很好的。换句话说,您可以隐藏您的类使用Date
的事实,如果您将来需要这样做,您可以从该实现切换。
Person::Person(const string& _name, const string& _surname, int dd, int mm, int yy)
: name(_name), surname(_surname), dob(Date(mm, dd, yy) {
}
相关文章:
- 如何返回一个类的两个对象相加的结果
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 如何允许模板参数中的类类型,仅当它有两个基类时
- 在类 A 中创建类型为 B 类的向量 - 访问数据 [C++] [成员在两个类中都是私有的]
- 两个父类的构造函数的序列
- 我需要帮助在一个类中输入两个字符串并获取其输出
- 堆栈分配的类类型.为什么两个 ID 实例的地址相同?
- C++ 关于两个类构造函数的问题
- 两个单独的类不共享相同的数据 C++
- 创建子类的多个实例,其中只有一个超类实例
- 在两个.cpp文件之间定义全局类/结构指针
- C++ 如何使用一个参数从派生类构造函数中调用具有两个参数的超类构造函数
- C++ 类两个动态属性
- 当两个超类具有具有相同名称但签名不同的成员函数时,不明确
- 模板类两个重载函数
- 如何向两个上层超类发送多个值