在C++中,面向对象(Object-Oriented)是一种程序设计范式,它使用“对象”来设计应用程序和软件。面向对象编程(OOP)的核心概念包括类(Class)、对象(Object)、封装(Encapsulation)、继承(Inheritance)和多态性(Polymorphism)。
类(Class):类是对某一类对象的抽象描述,它定义了对象的属性和方法。属性通常表现为类的数据成员,而方法则是类的成员函数。
对象(Object):对象是类的实例。每个对象都有它自己的属性(即类的数据成员的值)和方法(即类的成员函数)。
封装(Encapsulation):封装是隐藏对象的属性和实现细节,仅对外提供公共接口。这有助于保护数据不被外部直接访问和修改,并且使得代码更易于维护和理解。
继承(Inheritance):继承允许一个类(派生类)继承另一个类(基类)的属性和方法。这使得代码重用成为可能,并有助于构建层次化的类结构。
多态性(Polymorphism):多态性意味着一个接口可以有多种实现方式。在C++中,这通常通过虚函数和继承实现。多态性允许我们编写更加通用和灵活的代码。
在C++中,组合(Composition)是一种面向对象设计原则,指的是一个类的对象包含其他类的对象作为其数据成员。通过组合,一个类可以重用其他类的功能,并将其纳入自己的实现中。这种关系是一种“有”的关系,即一个对象“有”另一个对象作为其一部分。
组合是面向对象编程中代码重用和封装的重要手段之一。通过组合,你可以创建更复杂的对象,这些对象由更简单的对象组成,从而实现了功能的层次化和模块化。

- #include
-
- class ARR{
- public:
- ARR():tail(0){}
- void addtail(int data);
- void show(void);//
- private:
- int data[100];
- int tail;
- };
-
- void ARR::addtail(int data){
- this->data[tail++] = data;
- }
- void ARR::show(void){
- int i = 0;
- for(;i
- printf("%d, ", data[i]);
- printf("\n");
- }
-
- class Stume{
- public:
- Stume(){}
- ~Stume(){}
-
- void savescore(int score) {
- scorearr.addtail(score);
-
- }
- void showscore(void){
- scorearr.show();
- }
- private:
- ARR scorearr;
- };
-
- int main() {
- Stume mmm;
- mmm.savescore(1);
- mmm.savescore(2);
- mmm.savescore(3);
- mmm.showscore();
- return 0;
- }
3.继承(基类、派生类)

举例:
- #include
- #include
-
- using namespace std;
-
- class ARR{
- public:
- ARR() {}
- ~ARR(){}
- void show(void){
-
-
- cout << "XXXXXXXXXXX" << endl;
- }
- };
-
- int main() {
- ARR a;
- a.show();
- return 0;
- }
- #include <stdio.h>
- #include <iostream>
-
- using namespace std;
-
- class A{
- public:
- A() {}
- ~A(){}
- void showx(void){
-
-
- cout << "XXXXXXXXXXX" << endl;
- }
- };
-
- /* AX类是A类的升级版,(这种也叫派生,同时也叫继承)
- * A为AX的基类
- * AX为A的派生
- * AX具有A的全部功能,并且添加了新的功能
- */
- class AX:public A{
- public:
- void showy(void){
-
-
- cout << "YYYYYYYYYYYY" << endl;
- }
- };
-
- int main() {
- A a;
- a.showx();
-
- AX b;
- b.showx();
- b.showy();
- return 0;
- }