2016-07-05 96 views
-5

了解在派生类的构造函数中调用基类的构造函数是否很重要?从派生类构造函数传递参数到基类构造函数的使用

我的意思是,有没有实际的应用做到这一点?如果是的话,有人可以给我一个例子,并解释何时应用它,什么时候不应该?

我刚刚了解了它,我不知道它是否在实际应用中使用。

下面是一个例子:

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 
    { } 
    }; 
+5

学习传递参数的基础知识非常简单,您可以从此开始。在你知道它之前,你已经学会了它。它只需要具备实际效用的最低限度,就可以开始自学。 –

+0

大约75-90%的时间我有一个后裔类,我叫基础构造函数,所以是的,这很重要:)。 – lorro

+2

您给出的例子要求'derived'使用显式参数调用'base'构造函数,因为'base'没有默认的构造函数。你是在自问自答。 – Kevin

回答

0

我的意思是,是否有这样做的任何实际应用?

是的。这里列出的用例数量太多了。

如果是的话,有人可以给我一个例子,并解释什么时候应用它,什么时候不应该?

这里有几个示例何时应用它。

例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

相关问题