【C++】C++面向对象


C++是一种支持面向对象编程(OOP)的编程语言。面向对象编程是一种编程范式,它使用“对象”来设计软件。在C++中,面向对象的概念主要涉及以下几个核心概念:

1. 类(Class)

类是创建对象的模板或蓝图。它定义了对象的数据和行为。类中的数据成员称为属性,行为成员称为方法。

class Car {
  public:
    string brand;  // 属性
    void honk() {  // 方法
      cout << "Beep beep!\n";
    }
};

2. 对象(Object)

对象是类的实例。每个对象都拥有类中定义的属性和方法。

Car myCar;  // 创建Car对象
myCar.brand = "Toyota";  // 访问属性
myCar.honk();  // 调用方法

3. 封装(Encapsulation)

封装是面向对象编程的一个基本原则,它将对象的数据和方法结合在一起,并对外隐藏内部实现的细节。在C++中,使用访问修饰符如private, protected, 和 public来实现封装。

class Car {
  private:
    string brand;

  public:
    void setBrand(string b) {
      brand = b;
    }
    string getBrand() {
      return brand;
    }
};

4. 继承(Inheritance)

继承允许我们定义一个基于另一个类的类,从而继承基类的属性和方法。这有助于代码复用。

class Vehicle {  // 基类(父类)
  public:
    string brand = "Ford";
    void honk() {
      cout << "Tuut, tuut!\n";
    }
};

class Car: public Vehicle {  // 派生类(子类)
  public:
    string model = "Mustang";
};

Car myCar;
myCar.honk();  // Car继承了Vehicle的方法
cout << myCar.brand + " " + myCar.model;  // Car继承了Vehicle的属性

5. 多态(Polymorphism)

多态允许我们使用统一的接口来访问多个不同的基本形态(类型)。在C++中,多态通常通过使用指针或引用以及虚函数来实现。

class Animal {
  public:
    virtual void speak() {
      cout << "Some sound\n";
    }
};

class Cat : public Animal {
  public:
    void speak() override {
      cout << "Meow meow\n";
    }
};

class Dog : public Animal {
  public:
    void speak() override {
      cout << "Woof woof\n";
    }
};

void makeAnimalSpeak(Animal &animal) {
    animal.speak();  // 多态性使得我们可以在这里调用任何Animal子类的speak()方法
}

Cat myCat;
Dog myDog;
makeAnimalSpeak(myCat);  // 输出:Meow meow
makeAnimalSpeak(myDog);  // 输出:Woof woof

6. 抽象(Abstraction)

抽象是一种只显示有用信息的概念,它隐藏了背后的复杂细节。在C++中,可以使用抽象类和纯虚函数来实现。

class AbstractEmployee {
  virtual void AskForPromotion() = 0;  // 纯虚函数
};

class Employee: AbstractEmployee {
  private:
    string Name;
    string Company;
    int Age;
    
  public:
    void AskForPromotion() {
      if (Age > 30)
        cout << Name << " got promoted!" << endl;
      else
        cout << Name << ", sorry no promotion for you!" << endl;
    }
};

这些是C++中面向对象编程的基本概念。通过以上概念,C++提供了一种强大的方式来模拟真实世界的问题和创建可复用的代码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值