济南哪里有做网站的,网站设计与网页制作在线,在安徽省住房和城乡建设厅网站,青岛专业做网站的公司往期回顾#xff1a; C 入门02#xff1a;控制结构和循环-CSDN博客C 入门03#xff1a;函数与作用域-CSDN博客C 入门04#xff1a;数组与字符串-CSDN博客 一、前言
在前面文章的学习中#xff0c;我们了解了 C 的基本结构、变量、输入输出、控制结构、循环、函数、作用域…往期回顾 C 入门02控制结构和循环-CSDN博客C 入门03函数与作用域-CSDN博客C 入门04数组与字符串-CSDN博客 一、前言
在前面文章的学习中我们了解了 C 的基本结构、变量、输入输出、控制结构、循环、函数、作用域以及数组与字符串。今天我们将深入学习面向对象编程OOP的核心概念类和对象。这是编写复杂和模块化程序的重要基础。
二、类和对象
2.1、什么是类和对象
类是一个模板或蓝图用于创建对象。对象是类的实例具有类定义的属性和方法。通过类和对象可以实现数据封装、继承和多态等面向对象编程的特性。
通过类和对象可以实现数据封装、继承和多态等面向对象编程的特性。
1类的定义
类Class是面向对象编程OOP中的一个核心概念它扮演着模板或蓝图的角色用于定义一组具有共同属性和方法的对象的结构。这些属性和方法共同描述了对象的状态和行为使得对象能够模拟现实世界中的实体或概念。通过类的定义我们可以清晰地规划出对象将如何被创建、如何相互交互以及它们将如何响应不同的操作。
语法
class ClassName {
public:// 公有成员属性和方法的声明private:// 私有成员属性和方法的声明
};示例
#include iostream
using namespace std;class Car {
public:string brand;string model;int year;void displayInfo() {cout Brand: brand endl;cout Model: model endl;cout Year: year endl;}
};2创建对象 对象是类的具体实例是根据类的定义在内存中分配的一块区域用于存储实际的数据值即属性的具体值和实现方法的功能。每个对象都是独特的但它们都共享着类的结构这意味着所有对象都具有相同的属性集合和方法集但各自的属性值可以不同从而体现出对象的个性化和差异性。 示例
#include iostream
using namespace std;class Car {
public:string brand;string model;int year;void displayInfo() {cout Brand: brand endl;cout Model: model endl;cout Year: year endl;}
};int main() {Car myCar; // 创建一个 Car 类的对象myCar.brand Toyota;myCar.model Corolla;myCar.year 2020;myCar.displayInfo(); // 调用对象的成员函数return 0;
}3类的构造函数和析构函数
类的构造函数Constructor和析构函数Destructor是面向对象编程中两个非常重要的特殊成员函数它们在对象的生命周期中扮演着关键角色。
A、构造函数
构造函数是一种特殊的成员函数其主要职责是在创建对象时初始化对象的成员变量。当使用new关键字在C或类似语言中或相应的语法如Java、C#中的直接对象实例化创建类的实例时构造函数会自动被调用。构造函数没有返回类型甚至连void也不写其名称必须与类名完全相同包括大小写如果语言对大小写敏感的话。
特点与用途 自动调用 对象被创建时自动调用无需手动调用。初始化成员变量可以在构造函数中设置成员变量的初始值确保对象在创建时处于有效状态。构造函数的重载一个类可以有多个构造函数只要它们的参数列表不同即参数的数量、类型或顺序不同这样就可以根据不同的需要初始化对象。默认构造函数如果程序员没有为类定义任何构造函数编译器会提供一个默认的构造函数它不接受任何参数并且不会为成员变量执行任何初始化操作在C中如果类中有内置类型或指针成员未初始化的成员变量会包含不确定的值这可能导致未定义行为。
语法
class ClassName {
public:ClassName() {// 构造函数体}
};示例:
#include iostream
using namespace std;class Car {
public:string brand;string model;int year;// 构造函数Car(string b, string m, int y) {brand b;model m;year y;}void displayInfo() {cout Brand: brand endl;cout Model: model endl;cout Year: year endl;}
};int main() {Car myCar(Toyota, Corolla, 2020); // 使用带参数的构造函数创建对象myCar.displayInfo();return 0;
}B、析构函数
析构函数是另一种特殊的成员函数它在对象生命周期结束时自动调用用于执行清理工作如释放对象占用的资源如动态分配的内存、文件句柄、网络连接等。析构函数的名称是在类名前加上波浪线~。与构造函数类似析构函数也不接受任何参数也不返回任何值。
特点与用途 自动调用 对象被销毁时自动调用无需手动调用。对象销毁的情况包括程序结束、对象离开作用域如函数返回时局部变量被销毁、使用delete操作符删除动态分配的对象在C中。清理资源确保对象占用的所有资源都被正确释放避免内存泄漏等问题。只能有一个析构函数每个类只能有一个析构函数且析构函数不能被重载。
语法
class ClassName {
public:~ClassName() {// 析构函数体}
};示例
#include iostream
using namespace std;class Car {
public:string brand;string model;int year;Car(string b, string m, int y) {brand b;model m;year y;}~Car() {cout Destructor called for brand model endl;}void displayInfo() {cout Brand: brand endl;cout Model: model endl;cout Year: year endl;}
};int main() {Car myCar(Toyota, Corolla, 2020);myCar.displayInfo();return 0;
}4访问修饰符
访问修饰符是面向对象编程中用于控制类成员包括成员变量和成员函数访问权限的重要机制。它们定义了类内部的不同部分如属性和方法在何处以及如何被访问从而实现了封装性这是面向对象编程的四大支柱之一封装、继承、多态、抽象。C 作为一种广泛使用的面向对象编程语言提供了三种基本的访问修饰符public、private 和 protected。
A、public
定义public 访问修饰符允许类的成员从类的外部被访问。如果一个成员被声明为 public那么它就可以被任何外部代码访问无论是通过类的实例还是通过派生类尽管对于派生类来说还有其他因素需要考虑如继承类型和访问权限。用途public 成员通常用于定义类的接口即那些需要被类的用户或客户端代码直接访问的属性和方法。通过公共接口类的用户可以在不直接操作类的内部实现细节的情况下与类进行交互。
B、private
定义private 访问修饰符限制了类的成员只能在类的内部被访问。这意味着除了类本身的方法之外没有任何外部代码包括派生类可以直接访问这些成员。用途private 成员通常用于封装类的内部实现细节防止外部代码直接访问这些可能敏感或复杂的内部状态。这有助于保护类的完整性并允许类的设计者在不破坏现有代码的情况下对类的内部实现进行修改或优化。
C、protected
定义protected 访问修饰符提供了一种介于 public 和 private 之间的访问级别。被声明为 protected 的成员在类的内部如同 private 成员以及任何派生类子类中都是可访问的但它们不能被类的外部直接访问。用途protected 成员主要用于在基类父类和派生类之间共享数据和方法而又不希望这些数据和方法被类的外部直接访问。通过这种方式基类可以为其派生类提供一些受保护的功能同时保持这些功能的封装性。
示例
#include iostream
using namespace std;class Car {
private:string brand;string model;public:int year;void setBrand(string b) {brand b;}void setModel(string m) {model m;}void displayInfo() {cout Brand: brand endl;cout Model: model endl;cout Year: year endl;}
};int main() {Car myCar;myCar.setBrand(Toyota);myCar.setModel(Corolla);myCar.year 2020;myCar.displayInfo();return 0;
}以上就是 C 程序的类和对象的基本用法的知识点了。包括类的定义、对象的创建、构造函数和析构函数以及访问修饰符。类和对象是面向对象编程的核心概念掌握它们可以帮助我们编写更模块化和可维护的代码。
都看到这里了点个赞再走呗朋友~
加油吧预祝大家变得更强