C++概述(二)
发布日期:2022-02-07 06:39:43 浏览次数:5 分类:技术文章

本文共 2010 字,大约阅读时间需要 6 分钟。

C++概述(二)

@(C++)

面向对象 与 类 简介


面向对象和类,我想也许就是C++里头的++吧

很多东西,都需要用到这里面的概念
所以还是想在介绍C++的某些特性前先把概念弄清楚

从数据类型说起

在说面向对象之前,我们先来复习一下如何声明一个变量

double d;int * p;

第一条语句,声明了一个占用8个字节的double型变量

第二条语句,声明了一个同样占用了8个字节的指向整型的指针变量
这里写图片描述
这两种数据类型的区别,我们可以从它们可执行的操作来区分
double型,可加可减可乘可除可取余……
指针型呢?你试过拿指针和指针相乘相除吗?
而且,就算是让double型和指针型同时加一个整数,
加法所进行的操作还是不太一样
(这里同一个+号对不同的数据类型执行不同的操作称为运算符重载,以后还会提到)

数据表示 与 数据操纵 的结合

从上面简单的数据类型,我们可以看到

一种数据类型,
简单来讲,就是
这里写图片描述

用C中的结构体,我们可以自定义一种数据类型

我们可以自定义结构体里的数据
但是却不能自定义该数据类型可执行的操作

而到了C++,与结构体类似的,将让我们

有了自定义数据类型,自定义操作的能力

简单介绍类与对象(以string类为例子)

什么是类

类描述了一种数据类型的全部属性
什么是对象
对象是根据类创建的实体

类之于对象,就像类型之于变量

我们先来拿个内置的类看看怎么用

#include 
using namespace std;int main(){ string str1 = "v"; string str2 = "matrix";}

1. string文件

系统内置的string类在string文件里,因此先包含它

#include <string>

2. string类及声明string对象

string类是在std名称空间里的

因此要
using namespace std;
就用极其正常的方法,
就像声明一个变量一样声明一个string类的对象

3. string类有什么特别的地方

实例1:调用方法: length()

string str2 = "matrix";int length = str2.length();

调用类方法用结构体中常用的运算符.

string类中有length()方法,该方法会返回该字符串的长度
我们用str1对象去调用它,用length变量去接受返回值
length = str2.length();
然后length就等于6啦;
实例2:调用方法:string类中的+运算符重载

string str3 = str1 + str2;//str3 = "vmatrix";

在string类中,+号经过重载,可以让这些对象相加

实例3:调用方法:string类中的>运算符重载
string类内部定义了> < == 运算符
所以我们可以直接比较,不用再用里面的strcmp函数了

if (str1 > str2)    cout << str1 + str2;//输出 :vmatrix

比较的依据是字符的ASCII码,码越大则该字符串越大

由此会有,小写字母比大写字母大

实例4:调用方法:find()

我要找找str2字符串里面有没有x这个字符

int pos = str2.find('x');//返回x出现的位置,注意第一个位置是零//pos == 5;

当然也会出现找不到的情况,

此时str2对象就会返回定义在string类中的npos的值
它的值是-1(类型为size_t 的-1)

截取子串,替换子串等等……

string类中都有相应的方法来解决
想要深入了解的可以继续看书本上网查一查
string类还不会出现C风格字符串常出现的溢出问题
比C中的字符串好用太多就是了这里写图片描述

当然,好用是有代价的,效率低这里写图片描述

面向对象编程与封装

想想,如果说要用C编一个对字符串进行各种操作的程序

我们需要用多少的函数
我们还需要自定义多少的函数
而现在
我们往string类的对象里放入了数据
并且通过调用类方法,操纵着类里的数据
简而言之,类方法就是我们与数据交互的一个接口
而且有一点
无论是类方法还是类的数据本身
都封装在了类对象里
我们无需关心方法是如何实现的
只需要知道接口就能拿来用
这就意味着类和调用接口的程序可以独立开发
(也许以后作业就是自己实现一个string类这里写图片描述

今后计划

现在都还是概述

以后会开始按照一定的顺序稍微细讲C++的特性
希望能够帮助大家更快的熟悉C++吧
那本大学教程一章就把所有特性都过掉我也是醉了这里写图片描述
以后会介绍一些特性,C++的类的深入讲解放到以后吧
简单I/O
数据表示
头文件
new与delete
内联函数
自定义函数中的默认值
函数重载
函数模板
名称空间
作用域解析运算符

转载地址:https://blog.csdn.net/wyfwyf12321/article/details/54584950 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C++概述
下一篇:docker 搭建mysql主从结构

发表评论

最新留言

不错!
[***.144.177.141]2024年04月09日 08时56分42秒