随笔分类 -  C/C++学习笔记

摘要:异常 基本概念 异常处理就是处理程序中的错误 语法 #include <iostream> using namespace std; int myDivision(int a,int b) { if (b == 0) { // return -1; // 抛出异常 throw -1; } else 阅读全文
posted @ 2020-12-06 16:55 小宇宙zjy 阅读(104) 评论(0) 推荐(0)
摘要:模板 概念 模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码,即不具体制定数据类型 模板是创建泛型类或函数的蓝图或公式 函数模板 基本语法 #include <iostream> #include <cstdio> using namespace std; // 函数模板实现通 阅读全文
posted @ 2020-12-05 22:09 小宇宙zjy 阅读(79) 评论(0) 推荐(0)
摘要:多态 基本概念 多态性提供接口与具体实现之间的另一层隔离,将“什么”和“怎么做”分开 分类 静态多态(函数地址早绑定) 运算符重载 函数重载 动态多态(函数地址晚绑定) 派生类 虚函数 地址早绑定和地址晚绑定 早绑定 #include <iostream> using namespace std; 阅读全文
posted @ 2020-12-05 21:10 小宇宙zjy 阅读(108) 评论(0) 推荐(0)
摘要:继承 一个类继承另一个类,被继承的叫父类,另一个则是子类,子类可以继承、拓展、重写父类的方法 基本语法 class 子类:public 父类 {} 例: #include <iostream> #include <string> using namespace std; class A { publ 阅读全文
posted @ 2020-12-05 20:20 小宇宙zjy 阅读(89) 评论(0) 推荐(0)
摘要:操作符重载 定义 运算符重载只是一种“语法上的方便”,也就是一种函数的调用方式 加号运算符重载 案例 现在实现了一个计时器类 // zjy_timer.h #ifndef ZJY_TIMER_H #define ZJY_TIMER_H #include <ctime> #include <cstri 阅读全文
posted @ 2020-12-04 22:31 小宇宙zjy 阅读(72) 评论(0) 推荐(0)
摘要:友元 概念 类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数 全局函数做友元 #include <iostream> #include <string> using names 阅读全文
posted @ 2020-12-04 20:06 小宇宙zjy 阅读(77) 评论(0) 推荐(0)
摘要:this指针 this指针的指向 this指针指向被调用的成员函数所属的对象 #include <iostream> #include <cstdlib> using namespace std; class Person { public: int a; void func(int var) { 阅读全文
posted @ 2020-12-04 19:29 小宇宙zjy 阅读(148) 评论(0) 推荐(0)
摘要:单例模式 附:设计模式教程 上面的教程来自C语言中文网,网址:http://m.biancheng.net/design_pattern/ 静态成员变量 在类的定义中,它的成员(包括成员变量和成员函数),这些成员可以用关键字static修饰,声明为静态的,叫做静态成员 不管类创建了多少个对象,静态成 阅读全文
posted @ 2020-11-07 21:33 小宇宙zjy 阅读(104) 评论(0) 推荐(0)
摘要:类和对象 引出 设计圆类 #include <cstdio> #include <cstdlib> #include <iostream> using namespace std; const double PI = 3.1415926; // 圆类 // 语法:class 类名(首字母大写) cl 阅读全文
posted @ 2020-11-06 22:22 小宇宙zjy 阅读(133) 评论(0) 推荐(0)
摘要:函数 默认参数 #include <cstdlib> #include <cstdio> // 默认参数必须写在最后面,例如:int func(int a,int b = 0, int c = 2) void test(int a, int b = 10) { printf("%d + %d = % 阅读全文
posted @ 2020-11-06 21:33 小宇宙zjy 阅读(67) 评论(0) 推荐(0)
摘要:内联函数 宏函数的缺点 缺陷1:要加小括号,保证运算完整 缺陷2:即使加了括号,有时也与预期不符 内联函数 本质也是一个普通函数,在适当时候会替换源码 注意 不能存在循环语句 不能存在过多条件判断语句 函数体不能过于庞大 不能对函数进行取址操作 语法 inline 函数() { // ... } 例 阅读全文
posted @ 2020-11-06 20:58 小宇宙zjy 阅读(51) 评论(0) 推荐(0)
摘要:引用 在C++中引用相当于给变量起一个别名 语法 数据类型 &别名 = 变量; #include <iostream> #include <cstdlib> using namespace std; void test01() { int a = 10; int &b = a; b = 100; c 阅读全文
posted @ 2020-10-30 23:00 小宇宙zjy 阅读(98) 评论(0) 推荐(0)
摘要:const 链接属性 C语言默认是外部链接属性 // test.c const int m_A = 0; // C语言下默认是外部链接属性 // main.c #include <stdio.h> int main() { extern const int m_A; // 告诉编译器外部有一个m_A 阅读全文
posted @ 2020-10-30 22:40 小宇宙zjy 阅读(92) 评论(0) 推荐(0)
摘要:C++对C的增强和拓展 增强 1. 全局变量检测增强 int a; int a = 0; int main(int argc,char *argv[]) { return EXIT_SUCCESS; } D:\CC++\C++\Day1\main.cpp|5|error: redefinition 阅读全文
posted @ 2020-10-30 21:54 小宇宙zjy 阅读(314) 评论(0) 推荐(0)
摘要:命名空间 #include <iostream> #include <cstdio> // using namespace std::cout; // 使用std中的cout using namespace std; // 使用std中的所有定义 namespace A { int a = 0; } 阅读全文
posted @ 2020-10-30 21:09 小宇宙zjy 阅读(74) 评论(0) 推荐(0)
摘要:命名空间 #include <iostream> #include <cstdio> // using namespace std::cout; // 使用std中的cout using namespace std; // 使用std中的所有定义 namespace A { int a = 0; } 阅读全文
posted @ 2020-10-23 21:17 小宇宙zjy 阅读(97) 评论(0) 推荐(0)
摘要:开始 初识输入输出 标准输入输出对象 C++标准库(iostream)定义了四个IO对象。 输入 cin(发音:see-in):istream对象,用于处理输入 cin >> 变量; 输出 cout(发音:see-out):ostream对象,称为标准输出 cerr(发音:see-err):用于输出 阅读全文
posted @ 2020-10-23 20:45 小宇宙zjy 阅读(144) 评论(0) 推荐(0)
摘要:开发环境搭建 安装Code::Blocks 进入官网下载地址(https://sourceforge.net/projects/codeblocks/files/Binaries/20.03/Windows/) 这里是20.03Windows版本的,可通过修改链接中的版本号下载对应版本 选择code 阅读全文
posted @ 2020-10-18 17:11 小宇宙zjy 阅读(173) 评论(0) 推荐(0)
摘要:概述 C++ = C + 面向对象编程 + 泛型编程 C语言是面向过程的,C++是面向对象的 初识 Hello world #include <iostream> // 导入库,不需要.h后缀 // iostream 即标准输入输出流 int main() { std::cout << "Hello 阅读全文
posted @ 2020-10-18 17:10 小宇宙zjy 阅读(116) 评论(0) 推荐(0)
摘要:项目案例:贪吃蛇 下载链接:https://www.haolizi.net/example/view_123268.html 1. 初始化墙 代码: // 初始化墙 void init_wall(void) { for (size_t y = 0; y <= HIGH; ++y) { for (si 阅读全文
posted @ 2020-10-03 22:41 小宇宙zjy 阅读(574) 评论(1) 推荐(0)