温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++类扩展之继承和组合怎么应用

发布时间:2023-05-05 17:10:38 来源:亿速云 阅读:98 作者:iii 栏目:开发技术

这篇文章主要介绍“C++类扩展之继承和组合怎么应用”,在日常操作中,相信很多人在C++类扩展之继承和组合怎么应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++类扩展之继承和组合怎么应用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

相关术语

继承:继承父类后可以拥有父类对应的属性和方法。

组合:将类作为成员对象,基类可以直接调用派生类对应的属性和方法。

一、继承

继承是指在一个已有的类的基础上,创建一个新的类并且使用原有类的功能和属性。通过继承,派生类可以获得基类的全部或部分成员和方法,然后添加新的成员和方法,或者覆盖部分原有成员和方法。

继承方式分为公有继承、私有继承和保护继承。

  • 公有继承:可以继承基类的公有成员和保护成员,并且派生类对外表现为基类的类型;

  • 私有继承:只能继承出基类的公有成员、保护成员、私有成员,并且派生类对外表现为自身类型;

  • 保护继承:可以继承保护成员和公有成员。

下面是一个简单的继承示例:

class Animal {
public:
    void eat() {
        cout << "Animal eat! " << endl;
    }
};
class Dog : public Animal {
public:
    void bark() {
        cout << "Dog bark! " << endl;
    }
};
int main() {
    Dog dog;
    dog.eat(); // Animal eat!
    dog.bark(); // Dog bark!
    return 0;
}

二、组合

组合是指在类中嵌入对象,从而使组合类可以使用嵌入对象的全部或部分成员和方法。与继承不同,组合是静态的,即组合类与嵌入对象之间的关系在编译时就已经确定,不能在运行时动态改变。

组合可以分为成员变量组合和指针组合两种。

  • 成员变量组合:指嵌入对象作为组合类的成员;

  • 指针组合:指嵌入对象作为指针成员,需要在组合类的构造函数中动态分配内存。

下面是一个简单的组合示例:

class Leg {
public:
    void jump() {
        cout << "Leg jump! " << endl;
    }
};
class Animal {
public:
    void eat() {
        cout << "Animal eat! " << endl;
    }
    Leg leg;
};
int main() {
    Animal animal;
    animal.eat();
    animal.leg.jump(); // Leg jump!
    return 0;
}

到此,关于“C++类扩展之继承和组合怎么应用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++
AI