C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 有没有办法从基础实例创建派生实例?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将一些基本信息注入到它可以构建的派生类中.派生类不应该关心初始化那些信息,它应该就在那里.

仅通过继承就可以轻松实现这一目标.但问题是基类本身并不知道这些值.相反,它们需要作为参数传递.但是,由于派生类不需要处理这个问题,因此通过派生构造函数对参数进行隧道处理是不可取的.

我能想到的唯一解决方案是静态地提供信息,以便基类可以在没有帮助的情况下获取它们.但我想避免这种情况.

有没有办法首先创建和初始化基类,然后将实例扩展到派生类型?如果没有,我如何使用C的可用功能实现此创建顺序和依赖项?

#include <String>
#include <iostream>
using namespace std;

class Base {
public:
    Base(String name,int agE) : name(Name),age(agE) {}
protected:
    const String name;
    int age = 0;
};

class Derived : public Base {
    Derived() { // No parameters here,no call to base constructor
        cout << "My name is " << name << " and I'm " << age << "." << endl;
    }
}

Base base("Peter",42);
Derived derived(basE); // "My name is Peter and I'm 42."

解决方法

@H_404_13@ “信息应该就在那里”听起来像是它允许两种可能的解释:

>信息实际上是全局不变的,可以硬编码:

Derived() : Base("Peter",42) {}

>你真正的意思是“基地应该就在那里”:

Derived(const Base & b) : Base(b) {}

大佬总结

以上是大佬教程为你收集整理的c – 有没有办法从基础实例创建派生实例?全部内容,希望文章能够帮你解决c – 有没有办法从基础实例创建派生实例?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。