面向对象编程
面向对象编程的点有以下几个
1是要有类和对象 类是定义对象的蓝图,它包含了数据成员(属性)和成员函数(方法) 对象是类的实例
比如下面这个代码
class Person {
public:
string name; // 数据成员
int age;
// 成员函数
void introduce() {
cout << "Hello, my name is " << name << " and I am " << age << " years old." << endl;
}
};
int main() {
Person person1; // 创建Person类的一个对象
person1.name = "Alice";
person1.age = 30;
person1.introduce(); // 调用成员函数
return 0;
}
2是进行函数封装 封装是将数据(属性)和操作这些数据的代码(方法)捆绑在一起的过程。C++通过访问修饰符(public, private, protected)来实现封装。以下为实例
class Person {
private:
string name; // 私有成员,只能在类内部访问
public:
void setName(string n) { name = n; } // 提供公共方法来设置私有成员
string getName() const { return name; } // 提供公共方法来获取私有成员
};
Person person;
person.setName("Bob");
cout << person.getName() << endl; // 正确
// cout << person.name << endl; // 错误:name是私有的
3函数还可以进行继承 继承是允许一个类(派生类)继承另一个类(基类)的属性和方法
实例可以如下
class Person {
public:
string name;
int age;
};
class Student : public Person { // Student继承自Person
public:
string major; // 学生特有的属性
void study() {
cout << name << " is studying " << major << endl;
}
};
Student student;
student.name = "Charlie";
student.major = "Computer Science";
student.study(); // 调用Student特有的方法
4 面向对象编程也有构造函数和析构函数 构造函数用于初始化对象,析构函数用于在对象生命周期结束时执行清理工作
以下为一个简单代码
class Person {
public:
Person(string n) : name(n) {} // 构造函数
~Person() { // 析构函数
cout << name << " has been destroyed." << endl;
}
private:
string name;
};
int main() {
Person person("Dave"); // 调用构造函数
// person对象生命周期结束时,自动调用析构函数
return 0;
}