随笔分类 - C++基础
摘要:这三个函数如果没有自定义,系统会自动生成一个默认的。都没有返回值。 析构函数可以重载。拷贝构造函数、析构函数不可以被重载。析构函数无参数。 拷贝构造函数在直接初始化、或复制初始化实例化对象时自动调用。 析构函数在对象销毁时自动调用。 【参考】 https://www.imooc.com/video/
阅读全文
摘要:字不如图,图不如视频 https://www.imooc.com/video/8135 初始化列表可以让类的属性带上默认值。 初始化列表只能用于构造函数,即类在实例化时会调用自己的构造函数,初始化列表先于构造函数执行,这样对象在创建的时候就有了带默认值的属性。 格式如下图红色部分:赋值必须在()内。
阅读全文
摘要:注意只能有一个cpp定义这个变量。其它cpp直接用。extern可以实现多个cpp控制同一变量(声明不开辟内存,定义开辟内存,所以指向同一内存) file1.cpp #include<iostream> using namespace std; extern int i;//先声明,再使用。i的具体
阅读全文
摘要:【参考】 UTF8最好不要带BOM,附许多经典评论 Visual Studio UTF-8 无 BOM 一站式解决办法https://blog.csdn.net/dolphin98629/article/details/89082416
阅读全文
摘要:推荐使用宽字符(UNICODE)字符集,严格使用宽字符集的函数和定义。具体参考https://blog.csdn.net/qq_22642239/article/details/84822485
阅读全文
摘要:变量、函数在使用前必须被声明。至于函数里干了什么,编译时不关注,链接(link)时,才会去搜寻所有编译后的文件,寻找函数具体干了什么。 *.h头文件干的事情就像“复制-粘贴”,哪里引用,就把*.h内容粘贴到哪里。至于头文件名是否与cpp名一致,也不关注。 原则上,头文件中只声明,不赋值不定义。cpp
阅读全文
摘要:如求矩形、圆的面积的方法,可以写成一个area类 area.h中只声明,不实现: area.cpp中实现: 调用:
阅读全文
摘要:两者功能一样,防止重复包含被多次编译。建议头文件加入#pragma once C++头文件开头的两句与结尾的一句#ifndef <标识>#define <标识>类代码#endif为了防止头文件的重复包含和编译,例如a.h中有#include "c.h",b.cpp文件导入了#include "a.h
阅读全文
摘要:加上typedef就变为类型,不加就是单纯的对象。 【类型别名】typedef一般用法 typedef unsigned char AGE; //字符类型AGE x; //等价于 unsigned char x; typedef int * IPointer; //指针类型IPointer p; /
阅读全文
摘要:带默认形参值的函数、重载函数、内联函数、递归函数 1、带默认形参值的函数带默认值的形参必须定义在形参列表的后面。void fun(int p1,int p2=10); //正确void fun(int p1=10,int p2); //错误 2、重载函数形参个数不同,或数据类型不同,那么这两个函数可
阅读全文
摘要:编译预处理指令:文件包含指令、宏定义指令、条件编译指令。“#”开头,不加分号“;” 1、文件包含指令: #include<文件名> 标准目录下搜索 #include"文件名" 当前目录下搜索,再在标准目录下搜索 2、宏定义指令: #define 宏名 宏文本 //宏名习惯大写 #undef 宏名 /
阅读全文
摘要:多个cpp文件协同工作。使用外部函数、变量时,必须先声明再使用。声明外部函数(一般在main.cpp中),extern可省略(主函数中默认可访问外部函数)extern void RectArea();声明外部全局变量(一般在非main.cpp中),extern不可省略,不能初始化。extern do
阅读全文
摘要:1、值传递:将主调函数的实参值传递给被调函数的形参。形参单独分配内存。单向数据传递机制:只能将主调函数的实参的值传递给被调函数的形参,形参改变不影响实参的值。 2、引用传递:被调函数的形参(引用类型)引用主调函数的实参值。间接访问。双向数据传递机制:引用&,指向同一内存,其一改变,两者都改变。函数中
阅读全文
摘要:函数的定义:函数类型 函数名(形参列表){ 函数体 }函数类型省略,默认int型,返回值与函数类型一致。无返回值的,用void型 函数的调用:被调函数(子函数)要先定义再调用,或先声明、再调用、后定义。
阅读全文
摘要:英文编码(单字节字符集,码值范围0~127):字节最高位是0 ASCII编码,用于英文字符。中文编码(双字节字符集):首字节(8位)的最高位是1。可依据首字节最高位来判断中英文。 GB2312, 旧版,6763个汉字。 GBK, 中文字符升级版,21000多个汉字。国际编码:Unicode编码, 各
阅读全文
摘要:字符类型是以ASCII码值运算的:小写字母比相应的大写字母大32,其中A=65,a=97 Esc键 27(十进制)、'\x1B'(十六进制)、'\33'(八进制) 转义字符:\0 空字符 ASCII码值 0\n 换行\r 回车\t 水平制表符(Tab键)\' 单引号\" 双引号\\ 反斜杠 注意:英
阅读全文
摘要:GBK中文编码(双字节字符集):首字节(8位)的最高位是1。可依据首字节最高位来判断中英文。 算法:位与运算,& 0x80 != 0 或 & 0x80= 1,其中16进制0x80对应二进制1000 0000 从键盘输入“你好abc”。输出结果为“你好”
阅读全文