当前位置: 首页 > news >正文

成都万商云集做网站怎么样关键词你们懂的

成都万商云集做网站怎么样,关键词你们懂的,枣庄高端网站建设,麻栗坡做网站往期回顾: C 入门02:控制结构和循环-CSDN博客C 入门03:函数与作用域-CSDN博客C 入门04:数组与字符串-CSDN博客 一、前言 在前面文章的学习中,我们了解了 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++ 作为一种广泛使用的面向对象编程语言,提供了三种基本的访问修饰符:publicprivate 和 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++ 程序的类和对象的基本用法的知识点了。包括类的定义、对象的创建、构造函数和析构函数以及访问修饰符。类和对象是面向对象编程的核心概念,掌握它们可以帮助我们编写更模块化和可维护的代码。

都看到这里了,点个赞再走呗朋友~

加油吧,预祝大家变得更强!

http://www.yidumall.com/news/29095.html

相关文章:

  • 淄博营销网站建设网站制作教程
  • 阿里云centos7做网站友情链接买卖
  • 抚顺您做煮火锅网站如何快速搭建网站
  • 网站底部固定代码企业网络推广平台
  • 论坛搭建教程江阴网站优化公司
  • 禅城网站开发外贸平台排行榜前十名
  • 为什么做独立站的人都不止一个网站全国广告投放平台
  • 用户访问域名劫持网站免费网站推广工具
  • 做装修网站好赚钱吗semantic
  • 网站建立基本流程郑州seo关键词排名优化
  • 北京装修公司口碑排行seo关键词排名优化品牌
  • 可以用自己电脑做网站服务器吗百度sem运营
  • 天津电子商务网站建设seo教程seo教程
  • 衡水哪有建网站的吗网站google搜索优化
  • 公众号里的功能怎么开发关键词优化策略有哪些
  • 怎样在国外网站购买新鲜橙花做纯露seo课程
  • 网络实施方案怎么写上海谷歌seo推广公司
  • 深圳外贸营销型网站建设求好用的seo软件
  • 摩洛哥网站后缀搜索图片识别出处百度识图
  • 专业网站建设组织友情链接购买网站
  • 宜昌网站优化有实力的网站排名优化软件
  • 承德网站建设费用百度推广怎么推
  • 做网站付款流程足球世界积分榜
  • 深圳做网站开发费用搜索引擎营销案例分析
  • 网站建设技术规范股票发行ipo和seo是什么意思
  • 网站怎么做多语言展示百度网盘app下载安装
  • 淄博市住房城乡建设局政府网站南京seo排名扣费
  • 上海网站关键词优化服务推广软文范例
  • 有哪些网站是做视频的上海关键词优化方法
  • 网站服务器 内存seo营销优化软件