从派生类构造函数传递参数到基类构造函数的使用
问题描述:
了解在派生类的构造函数中调用基类的构造函数是否很重要?从派生类构造函数传递参数到基类构造函数的使用
我的意思是,有没有实际的应用做到这一点?如果是的话,有人可以给我一个例子,并解释何时应用它,什么时候不应该?
我刚刚了解了它,我不知道它是否在实际应用中使用。
下面是一个例子:
class base {
int a;
int b;
public:
base(int i, int j) {
a=i;
b=j;
}
};
class derived : public base {
public:
derived(int p, float q) : base(p, q) //passing parameters to base class
{ }
};
答
我的意思是,是否有这样做的任何实际应用?
是的。这里列出的用例数量太多了。
如果是的话,有人可以给我一个例子,并解释什么时候应用它,什么时候不应该?
这里有几个示例何时应用它。
例1:
struct Rectangle
{
Rectangle(int w, int h) : width(w), height(h) {}
int width;
int height;
};
struct Square : Rectangle
{
Square(int size) : Rectangle(size, size) {}
};
例2:
struct Employee
{
Employee(std::string const& name, int id) : name(name), id(id) {}
std::string name;
int id;
};
struct Manager : struct Employee
{
Manager(std::string const& name, int id) : Emplyee(name, id) {}
void addEmployee(int id)
{
managedEmployeeIDs.insert(id);
}
std::set<int> managedEmployeeIDs;
};
是很困难的建议,其中因为有这么多的方法也可以是不恰当它是不恰当的。给出一个例子,它会更容易分辨何时合适。
+0
thnxxx很多朋友...我知道了:) – Ayush
学习传递参数的基础知识非常简单,您可以从此开始。在你知道它之前,你已经学会了它。它只需要具备实际效用的最低限度,就可以开始自学。 –
大约75-90%的时间我有一个后裔类,我叫基础构造函数,所以是的,这很重要:)。 – lorro
您给出的例子要求'derived'使用显式参数调用'base'构造函数,因为'base'没有默认的构造函数。你是在自问自答。 – Kevin