繁体   English   中英

如何编写C ++继承构造函数

[英]how to write C++ inheritance constructors

我已经离开了C ++一段时间了,我对这个问题有点麻烦。 我会饶恕你的坏代码 - 有人可以发一个'模型答案'来为如何用一个接受一些值的构造函数编写一个简单的头文件和源文件,并将一些值传递给它的基础类构造函数? 我担心我错误地在线制作内容。 谢谢。

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

// 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
}

初始化列表用于初始化基类。 在实例成员之前初始化基类。 非虚拟基类从左到右初始化 ,因此如果您有多个基础,则按照它们的声明顺序初始化它们。

这是将参数传递给基类构造函数的示例:

#include <iostream>

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

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

看到OP请求非内联版本,我将重新发布修改。

struct Base {
    Base (int);
};

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

Derived :: Derived (int i)
: Base (i)
{
}
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
    }
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM