「C/C++」C++对已有的类进行扩充

在这里插入图片描述

博客主页:何曾参静谧的博客
文章专栏:「C/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;
}

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
在C基础上[2],一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C++C++进一步扩充和完善了C语言,成为一种面向 对象的程序设计语言。C++目前流行的编译器最新版本是Borland C++ 4.5,Symantec C++ 6.1,和Microsoft Visual C++ 2012。C++提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。 C++由美国AT&T贝尔实验室的本贾尼·斯特劳斯特卢普博士在20世纪80年代初期发明并实现(最初这种语言被称作“C with Classes”带的C)。开始,C++是作为C语言的增强版出现的,从给C语言增加开始,不断的增加新特性。虚函数(virtual function)、运算符重载(Operator Overloading)、多重继承(Multiple Inheritance)、模板(Template)、异常(Exception)、RTTI、命名空间(Name Space)逐渐被加入标准。 C++ 1998年国际标准组织(international standard organization, ISO)颁布了C++程序设计语言的国际标准ISO/IEC 1988-1998。C++是具有国际标准的编程语言,通常称作ANSI/ISOC++。 1998年是C++标准委员会成立的第一年,以后每5年视实际需要更新一次标准。C++0x最终国际投票已于2011年8月10日结束,并且所有国家都投出了赞成票,C++0x已经毫无疑义地成为正式国际标准。先前被临时命名为C++0x的新标准将被称为C++ 2011。C++ 2011取代现行的C++标准ISO/IEC 14882,它公开于1998年并于2003年更新,通称C++98以及C++03。国际标准化组织于2011年9月1日出版发布ISO/IEC 14882:2011,名称是:Information technology -- Programming languages -- C++ Edition: 3。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何曾参静谧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值