目录
1.类的概念:
类用于指定对象的形式,是一种用户自定义的数据类型,
它是一种封装了数据和函数的组合。类中的数据称为成员变量,函数称为成员函数。
类可以被看作是一种模板,可以用来创建具有相同属性和行为的多个对象。
2.类的定义
在 C++ 中,类的定义通常包括以下几个部分:
- 数据成员(成员变量):用于存储对象的状态或属性。
- 成员函数:用于定义对象的行为或功能。
#include <iostream>
#include <string>
class Dog {
public:
// 数据成员
std::string name;
int age;
// 成员函数
void bark() {
std::cout << "Woof! My name is " << name << " and I am " << age << " years old." << std::endl;
}
};
3.对象的创建:
使用类定义后,可以创建类的对象。每个对象都是类的一个实例,拥有自己的数据成员值。
int main() {
Dog myDog; // 创建对象 myDog
myDog.name = "Buddy"; // 设置属性
myDog.age = 3; // 设置属性
myDog.bark(); // 调用成员函数
return 0;
}
4.封装
封装是面向对象编程的一个重要特性,它通过控制访问权限来保护对象的状态。使用访问修饰符可以控制类的成员是否可以被外部访问。
访问修饰符:
-
public:可以被外部代码访问。
-
private:只能被类内部访问。
-
protected:可以被类内部和派生类访问。
class BankAccount {
private:
double balance; // 私有成员,不能直接访问
public:
// 构造函数
BankAccount(double initialBalance) : balance(initialBalance) {}
// 公共成员函数
void deposit(double amount) {
if (amount > 0) {
balance += amount;
}
}
double getBalance() {
return balance; // 允许外部访问余额
}
};
int main() {
BankAccount account(100.0); // 创建 BankAccount 对象
account.deposit(50.0); // 存款
std::cout << "Balance: " << account.getBalance() << std::endl; // 输出余额
// account.balance = 200; // 错误,不能直接访问私有成员
return 0;
}
5.继承
继承允许创建新类(派生类),基于现有类(基类)扩展其功能。派生类可以继承基类的属性和方法,并可以添加新的属性和方法。
class Animal {
public:
void eat() {
std::cout << "Eating..." << std::endl;
}
};
// 派生类
class Cat : public Animal {
public:
void meow() {
std::cout << "Meow!" << std::endl;
}
};
int main() {
Cat myCat; // 创建 Cat 对象
myCat.eat(); // 调用基类方法
myCat.meow(); // 调用派生类方法
return 0;
}
Cat
类继承了 Animal
类,因此 myCat
对象可以调用 Animal
类中的 eat
方法。