IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++小知识笔记(1) -> 正文阅读

[C++知识库]C++小知识笔记(1)

1.C风格字符串: char 变量名[ ] = 字符串值

2.C++风格字符串: string 变量名 = 字符串值

3.rand() % 100,输出的是0~99中的随机数。如果想要生成1~100,那就rand() % 100+1

// 添加随机数种子 作用:利用当前系统时间生成随机数,防止每次随机数都一样

4.srand((unsigned?int)time(NULL));?需要头文件#include<ctime>

5.例如 ?????水仙花数 ?153

获取个位 ?153%10=3 ?对数字取模于10,可以获取到个位

获取十位 ?153/10=15 15%10=5 先整除于10,得到两位数,再取模于10,得到十位

获取百位 ?153/100=1 直接整除于100,获取百位

6.ctrl + K + C 多行添加注释,ctrl + K + U 多行注释撤掉

7.冒泡排序法:排序总轮数 = 元素个数 - 1;

??????????????每轮对比次数 = 元素个数 - 排序轮数 - 1;

8.函数语法

返回值类型 函数名 参数列表

{

???????函数体语句

???????return 表达式

}

9.值传递的时候,形参发生任何的改变都不会影响实参

??但是,如果是地址传递就可以修改实参

10.指针记录的就是地址

指针定义的语法:数据类型 * 指针变量名;

指针前加 * 代表解引用,找到指针指向的内存中的数据.

11.空指针指向的内存是不可以访问的

???定义一个空指针: int * p = NULL ;

???空指针和野指针都不是我们申请的空间,因此不要访问

12.const修饰指针:

(1)常量指针 const int * p = &a;

?特点:指针的指向可以修改,但是指针指向的值不可以改

?*p = 20; //错误,指针指向的值不可以改

?p = &b; ?//正确,指针指向可以改

(2)指针常量 int * const p = &a;

?特点:指针的指向不可以修改,指针指向的值可以修改

?*p = 20; //正确,指向的值可以改

??p = &b; //错误,指针指向不可以改

(3)const即修饰指针,又修饰常量

?特点:指针的指向和指针指向的值都不可以改

?*p = 20; //错误

??p = &b; //错误

13.结构体 ?语法: struct 结构体名 {结构体成员列表}

关键字为: struct ??; 利用操作符 . ?来访问成员 ?;

?创建结构体变量时(main中),关键字struct可以省略

?创建结构体变量时,有三种创建方式,有时间自己回顾P64节课

14.在结构体变量定义完之后,需要使用指针来指向结构体变量这一步,之后是通过 -> 操作符,来访问结构体中的成员

15.结构体中如果不想修改主函数中的数据,用值传递;反之,使用地址传递

16.在定义函数参数时,将函数参数中的形参改为指针,可以减少内存空间。在定义形参时,加入const可以防止我们的误操作,这样就不会在误操作下修改main函数中的实参纸。

例如: void printStudent(const?struct student *p)

17.全局变量和局部变量:在main()外的为全局变量,在main()内的为局部变量。

不在全局区中:局部变量、const修饰的局部变量(局部变量)

全局区中:全局变量、静态变量(static关键字)、常量(字符串常量、const修饰的全局变量)

18.栈区中存储的是:局部变量和形参

19.利用new关键字,可以将数据开辟到堆区;指针本质也是局部变量,放在栈上,指针保存的数据是放在堆区。

例如:int *p = new int(10); ?(不在main()函数中)

20.当使用函数重载时,就不要使用默认参数,避免出错。

21.访问权限 三种

1)公共权限 public ????成员 类内可以访问 类外可以访问

2)保护权限 protected ?成员 类内可以访问 类外不可以访问 儿子可以访问父亲中的保护内容

3) 私有权限 private ???成员 类内可以访问 类外不可以访问 儿子不可以访问父亲的私有内容

22.在C++中struct和class唯一的区别就在于默认的访问权限不同

区别:1)struct默认权限为公共 2) class 默认权限为私有

  1. (1)构造函数

1)没有返回值不用写void

2)函数名与类名相同

3)构造函数可以有参数,可以发生重载

4)创建对象的时候,构造函数会自动调用,而且只调用一次

(2)析构函数 ?进行清理的操作

1)没有返回值不写 void

2)函数名和类名相同在名称前加 ~

3) 析构函数不可以有参数的,不可以发生重载

4) 对象在销毁前会自动调用析构函数,而且只会调用一次

24.构造函数调用规则如下:

1)如果用户定义有参构造函数,C++不在提供默认无参构造,但是会提供默认拷贝构造

2)如果用户定义拷贝构造函数,C++不会再提供其他构造函数

25.深拷贝浅拷贝问题:

总结:如果属性有在堆区开辟的,一定要自己提供拷贝构造函数,防止浅拷贝带来的问题

26.初始化列表 语法:构造函数():属性1(值1),属性2(值2)...{}

27.当其他类对象作为本类成员,构造时候先构造类对象,再构造自身,析构的顺序与构造相反

28.静态变量可以通过类名进行访问,例如 Person::func();

???静态变量也是有访问权限的

29.才C++中,类内的成员变量和成员函数分开存储;只有非静态成员变量才属于类的对象

30.左移运算符重载:<<

1)不会利用成员函数重载<<运算符,因为无法实现cout在左侧

2)只能利用全局函数重载左移运算符——void operator<<(ostream &cout,Person &p)

本质 ?operator<<(cout, p) ?简化cout<<p

  1. 重载左移运算符配合友元可以实现输出自定义数据类型

31.递增运算符重载: ++

int a = 10;

cout<<++a<<endl; // 11

cout<<a<<endl; ?// 11

int b = 10;

cout<<b++<<endl; // 10

cout<<b<<endl; ?// 11

总结:重载前置,返回的是引用;重载后置,返回的是值

32.继承:

好处:减少重复代码

语法:class ?子类 :继承方式 ?父类

子类 也成为 派生类

父类 也成为 基类

33.继承中的对象模型——查看方式

1)利用开发人员命令提示工具查看对象模型

2)跳转盘符 ?F:

3)跳转文件路径 cd 具体路径下

4)查看命名

5)cl /d1 reportSingleClassLayout类名 文件名

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-12 16:25:18  更:2021-08-12 16:26:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 7:41:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码