2011-10-07 46 views
5

我已经离开了C++一段时间了,而且我对这个有点麻烦。我会告诉你我的坏代码 - 是否有人可以发布一个“模型答案”,以便如何使用接受几个值的构造函数为小类编写一个简单的头文件和源文件,并将一些代码传递给它类的构造函数?我担心我在错误地提出内容。谢谢。如何编写C++继承构造函数

有时候,最简单的答案是在互联网上最难找到的明确例子。

+0

为什么downvote? –

+0

关于内联方面,你有什么担心的? –

回答

8
// ExampleClass.h 
#ifndef ExampleClass_H_ 
#define ExampleClass_H_ 

#include "ExampleBase.h" 

class ExampleClass : public ExampleBase { 
public: 
    ExampleClass(int a); 
}; 

#endif 


// ExampleClass.cpp 
#include "ExampleClass.h" 

ExampleClass::ExampleClass(int a) : ExampleBase(a) 
{ 
    // other constructor stuff here 
} 
6

initializer list用于初始化基类。在实例成员之前初始化基类。 Non-virtual base classes are initialized from left to right,所以如果你有多个基地,按照他们宣布的顺序进行初始化。

这里的参数传递给基类构造函数的例子:

#include <iostream> 

struct Base { 
    Base(int i) { 
     std::cout << i << std::endl; 
    } 
}; 

struct Derived : public Base { 
    Derived(int i) : Base(i) {} 
}; 
+0

老实说,我有点惊讶,我在C++ FAQ中找不到像这样的简单例子。如果任何人可以删除链接到适当的部分,我会很感激。 –

4

看到作为OP要求非在线版本,我会重新发布修改。

struct Base { 
    Base (int); 
}; 

struct Derived : public Base { 
    Derived (int); 
}; 

Derived :: Derived (int i) 
: Base (i) 
{ 
} 
+0

尽管缺乏投票,这应该是公认的答案。 –

1
class Parent 
{ 
    // Parent Constructor 
    Parent(int x) 
    { 
     // Constructor Code 
    } 
}; 

class Child : public Parent 
{ 
    // Child Constructor 
    Child(int x, int y, int z) : Parent(x) 
    { 
     // Constructor Code 
    } 
};