C++ 多重继承

        所谓多重继承就是一个儿子有好几个爹,然后一个人继承了这几个爹的财产。只需注意构造顺序即可,反正析构的顺序也是一样的。

#include <iostream>
#include <string.h>
using namespace std;

class base_a
{
public:
    base_a(const char *str)
    {
        strcpy(this->str, str);
        
    }
    void show()
    {
        cout << "str=" << str << endl;
    }

private:
    char str[1024];
};

class base_b
{
public:
    base_b(float f)
    {
        this->f = f;
       
    }
    void show()
    {
        cout << "f=" << f << endl;
    }

private:
    float f;
};

class base_c : public base_a, public base_b
{
public:
    base_c(const char *str, float f, const char *p, int size) : base_b(f), base_a(str), size(size)
    {
        this->p = new char[size];
        memset(this->p, 0, size);
        strcpy(this->p, p);
    }
    void show()
    {
        base_a::show();
        base_b::show();
        cout << "p=" << p << endl;
        cout << "size=" << size << endl;
    }

    ~base_c()
    {
        delete []p;
    }

private:
    char *p; // 指向大小为size的堆空间
    int size;
};

int main(int argc, char const *argv[])
{
    base_c c("hello", 1.1, "world", 10);
    c.show();
    return 0;
}

文章来源地址https://uudwc.com/A/NZeG5

原文地址:https://blog.csdn.net/weixin_55944697/article/details/132589700

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

上一篇 2023年08月31日 11:20
pdf转换成图片转换器在线怎么转?pdf转换成图片具体方法介绍
下一篇 2023年08月31日 11:22