
点击蓝字 关注我们

第一节 面向对象编程

C++在C语言的基础上增加了面向对象编程,是一种支持面向对象编程(OOP)范式的编程语言。它将程序看作一组相互关联的对象,每个对象都是一个实体,具有数据和相关的操作。
类和对象
类是面向对象编程的基本概念之一。它是一种用户定义的数据类型,可以包含数据成员和成员函数。类是对象的蓝图,描述了对象的属性和行为。
定义一个类的方法是使用关键字class,然后指定类的名称,主体包含类的成员变量和成员函数。
//定义一个类class Student{public://数据成员string name;int sid;int score;//成员函数void Showstudent(){cout<< "name:"<<name<<"\t"<<"sid:"<<sid<<"\t"<<"score:"<<score << endl;}};
关键字public确定了类成员的访问属性。在类对象作用域内,公共成员在类的外部是可访问的。访问属性还有private和protected,之后会涉及到。
对象是类的实例。通过类创建的对象可以访问类中定义的数据成员和成员函数。对象的公共数据成员用直接成员访问运算符 (.)来访问。
int main(){Student s1;//创建对象// 访问数据成员并设置其值s1.name = "Rose";s1.sid = 202101;s1.score = 98;// 调用成员函数s1.Showstudent();system("pause");return 0;}
结果如下:
name:Rose sid:202101 score:98
面向对象具有三大特性:
封装: 封装是将数据和与数据相关的操作封装在一个单一的单元中(类)的概念。通过将数据隐藏在类的内部,限制对数据的直接访问,只允许通过类的接口进行访问,提高了代码的安全性和可维护性。
class Student{private:char sgrade;//设置一个数据为私有属性public:void setgrade(char grade) {sgrade = grade;}//通过公共接口来访问或修改数据char getgrade() {return sgrade;}};
继承:继承允许一个类(派生类)使用另一个类(基类)的属性和方法。使用:表示继承关系。提高代码的重用性和扩展性,通过创建派生类来继承基类的属性和方法,同时可以在派生类中添加、修改或覆盖特定功能。在后面会具体讲到。
class Dad//父类(基类){public:void showmessage() {cout << "Dad message" << endl;}};class Son:public Dad//Son是子类(派生类){public:void showSonmessage(){cout << "Son message" << endl;}};
多态:多态是允许使用一个实体(如方法、函数或操作符)的多种形式的概念。提高代码的灵活性和可扩展性。通过多态,可以使用相同的接口调用不同的对象,根据上下文执行不同的操作。多态分为编译时多态(静态多态性)和运行时多态(动态多态性)。
编译时多态:
class Calculator {int add(int a, int b) {return a + b;}double add(double a, double b) {return a + b;}}
运行时多态:
class Animal {public:void MakeSound() {cout << "make generic sound" << endl;}};class Cat :public Animal {void MakeSoubd() {cout << "喵" << endl;}};class Dog :public Animal {void MakeSound() {cout << "汪" << endl;}};
Dog 和Cat类都继承自Animal类并重写了MakeSound方法。
这些特性一起提供了一种组织和设计代码的方法,使得代码更具有模块化、可维护性和可扩展性。
END
往期推荐




