首页 > 解决方案 > C ++派生类仅使用继承的基构造函数的一部分

问题描述

我确信这是一个基本问题,但我无法在任何地方找到答案。假设我有一个带有构造函数的基类:

class Parent{
public:
    double propertyA, propertyB;
    Parent(double propertyA, double propertyB){
        this->propertyA = propertyA;
        this->propertyB = propertyB;
}
};

然后我想要一个派生类来使用这个基构造函数,但它只需要接受propertyB. propertyA最终会成为一个常数(比如说1.0)。

目前我正在尝试:

class Child : public Parent {
public:
    Child(double PropertyB): Parent(1.0, PropertyB) {}
};

我不确定这是否符合我的要求。这是我应该这样做的吗?

标签: c++classinheritanceconstructor

解决方案


唯一可以确定的方法是测试,我认为:

#include <iostream>

class Parent
{
public:
    double propertyA, propertyB;
    Parent(double propertyA, double propertyB)
    {
        this->propertyA = propertyA;
        this->propertyB = propertyB;
    }
};
class Child : public Parent
{
public:
    Child(double PropertyB): Parent(1.0, PropertyB) {}
    double getPropertyA()
    {
        return propertyA;
    }
    double getPropertyB()
    {
        return propertyB;
    }
};

int main()
{
    double a = 3.0;
    double b = 5.0;
    Parent* parent = new Parent(a,b);
    Child* child = new Child(b);
    std::cout << "PropertyA for child " << child->getPropertyA();
}

输出是:

1 

推荐阅读