c++类(class)特性
C++是一种多范式编程语言,它支持面向过程编程、面向对象编程(OOP)和泛型编程。在面向对象编程方面,类是C++的核心特性之一。类不仅是一种数据封装的方式,还包含了继承、多态等概念。下面是C++类的一些基本特性:
1. 封装(Encapsulation)
封装是面向对象编程的基石之一,它允许将数据(属性)和与数据相关的方法(行为)组合成一个整体——即类。通过封装,可以隐藏类的内部细节,只对外公开需要的接口。这样做的好处是提高了代码的安全性和易用性。
class BankAccount
{
private:
double balance; // 私有属性,外部访问受限
public:
void deposit(double amount)
{
balance += amount; // 公共方法,可以被外部调用
}
double getBalance()
{
return balance; // 提供公共接口访问私有数据
}
};
2. 继承(Inheritance)
继承允许一个类(派生类)继承另一个类(基类)的属性和方法。这可以提高代码的复用性,并可以建立类之间的层次关系。继承是实现多态性的关键。
class Base
{
public:
void show()
{
std::cout << "Base class show function called." << std::endl;
}
};
class Derived : public Base
{
public:
void show()
{
std::cout << "Derived class show function called." << std::endl;
}
};
3. 多态(Polymorphism)
多态性意味着调用成员函数时会根据调用函数的对象的实际类型来执行不同的函数。这通常通过虚函数(使用virtual
关键字定义的函数)来实现。
class Animal
{
public:
virtual void speak() // 虚函数
{
std::cout << "Some animal makes a sound." << std::endl;
}
};
class Dog : public Animal
{
public:
void speak() override // 重写基类的函数
{
std::cout << "Dog barks." << std::endl;
}
};
void makeAnimalSound(Animal& animal)
{
animal.speak(); // 在运行时确定调用哪个类的speak()
}
4. 抽象(Abstraction)
抽象是通过使用抽象类和纯虚函数来实现的。抽象类至少包含一个纯虚函数