随笔分类 - 技术栈 / C++学习笔记
(更新中...)
摘要:# C++核心编程 本阶段主要针对C++==面向对象==编程技术做详细讲解,探讨C++中的核心和精髓。 ## 1 内存分区模型 C++程序在执行时,将内存大方向划分为**4个区域** - 代码区:存放函数体的二进制代码,由操作系统进行管理的 - 全局区:存放全局变量和静态变量以及常量 - 栈区:由编
阅读全文
摘要:# 通讯录管理系统 ## 1、系统需求 通讯录是一个可以记录亲人、好友信息的工具。 本教程主要利用C++来实现一个通讯录管理系统 系统中需要实现的功能如下: * 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人 * 显示联系人:显示通讯录中所有联系人
阅读全文
摘要:# C++基础入门 ## 1 C++初识 ### 1.1 第一个C++程序 编写一个C++程序总共分为4个步骤 * 创建项目 * 创建文件 * 编写代码 * 运行程序 #### 1.1.1 创建项目 Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开 的含义以及用法 什么是命名约定(naming conventions)· 什么是格式规则(formatting rules) (本章讲述如何编写优秀的代码,,通过简单的改变代码风格,可以极大的改变代码表现) 5
阅读全文
摘要:本章内容: 重用哲学:为什么要设计可重用代码? 如何设计可重用代码? 如何使用抽象? 创建可重用代码的三大策略 设计可用接口的六大策略 如何权衡通用性及使用的方便性 (在第二章中介绍了重用的设计主题,本章以第三章介绍的面向对象设计原理为基础,讨论重用的另一方面:设计可重用代码) 4.1 重用哲学 代
阅读全文
摘要:本章内容: 什么是面向对象的程序设计 如何定义不同对象之间的关系 抽象的重要性以及如何在设计中使用抽象 (面向对象的程序设计不同于面向过程,本章将讨论对象之间的不同关系,包括创建面向对象程序时会遇到的问题,抽象原则如何与对象联系起来) 3.1 过程化的思考方式 过程化语言(如C)将代码分割为小块,每
阅读全文
摘要:一. 位运算 符号 运算 & 与 | 或 ~ 非 ^ 异或 >> 右移 << 左移 常用操作: 求x的第k位数字 x >> k & 1 lowbit(x) = x & -x,返回x的最后一位1 二. 常用库函数 2.1 reverse翻转 //翻转一个vector: reverse(a.begin(
阅读全文
摘要:一. #include <vector> vector是变长数组,支持随机访问,不支持在任意位置 O(1)O(1) 插入。为了保证效率,元素的增删一般应该在末尾进行 1.1 声明 #include <vector> // 头文件 vector<int> a; // 相当于一个长度动态变化的int数组
阅读全文
摘要:一. 类与结构体 类的定义: class Person { private: int age, height; double money; string books[100]; public: string name; void say() { cout << "I'm " << name << e
阅读全文
摘要:一. 函数基础 一个典型的函数定义包括以下部分: 返回类型 函数名 由0个或多个形参组成的列表 函数体 1.1 编写函数 //编写一个求阶乘的程序: int fact(int val) { int ret = 1; while (val > 1) ret *= val -- ; return ret
阅读全文
摘要:一. 字符与整数的联系——ASCII码 每个常用字符都对应一个-128 ~ 127的数字,二者之间可以相互转化(目前负数没有与之对应的字符) 常用ASCII值: 'A' - 'Z' 是 65 ~ 90 'a' - 'z' 是 97 - 122 0 - 9 是 48 - 57 //字符可以参与运算,运
阅读全文
摘要:一. 一维数组 1.1 数组的定义 //数组的定义方式和变量类似。 #include <iostream> #include <algorithm> using namespace std; int main() { int a[10], b[10]; float f[33]; double d[1
阅读全文
摘要:一. while 循环 循环版的 if 语句。 if语句是判断一次,如果条件成立,则执行后面的语句 while是每次判断,如果成立,则执行循环体中的语句,否则停止 #include <iostream> using namespace std; int main() { int i = 0; whi
阅读全文
摘要:一. printf输出格式 注意:使用 printf 时最好添加头文件 #include <cstdio> #include <iostream> #include <cstdio> using namespace std; int main() { printf("Hello World!");
阅读全文
摘要:一. 编写一个简单的C++程序——手速练习 #include <iostream> using namespace std; int main() { cout << "Hello World" << endl; return 0; } 二. 语法基础 2.1 变量的定义 变量必须先定义,才可以使用
阅读全文
摘要:本章内容: 程序设计的定义 程序设计的重要性 C++程序设计的特点 高效C++程序设计的两个基本主题:抽象以及重用 不同类型的重用代码 代码重用的优缺点 重用代码的常用策略及指导原则 开放源代码库 C++标准库 C++程序设计的特定组件 (主要讲述如何利用专业的C++方法进行C++设计,磨刀不误砍柴
阅读全文
摘要:本章内容: 简要回顾C++语言最重要的部分及语法 (主要讲述日常编程会遇到的最重要的C++部分,大佬快速浏览即可) 1.1 C++基础知识 C++是基于C语言的超集,但这两种语言并不一样 1.1.1 小程序的"hello world" //HelloWorld.cpp #include<iostre
阅读全文
摘要:1. 什么是向下转换,为什么要这样做? 此题留给评论区.... 2. 什么是抽象数据类型 抽象数据类型ADT表示一种概念,而非具体的对象 在C++中,ADT只能用作其他类的基类,而不能创建其实例 抽象数据类型是不能实例化的类,它定义了派生类都需要的成员变量和函数 3. 什么是纯虚函数 C++通过提供
阅读全文
摘要:1. 什么是虚函数成员 声明虚成员函数,使用关键字 virtual 虚成员函数的工作原理: (基类和派生类在内存中相邻) ① 创建后的派生类对象中包含基类部分 ② 指针被初始化为指向基类的虚函数成员(每个对象都有一个指向虚成员函数表的指针) ③ 调用派生类的构造函数时,将调整指针,指
阅读全文
摘要:1. 什么是继承? 基类(class Animal)可以有多个派生类(class Dog :public Animal) class Animal //基类 { public: string name = "123"; int age; }; class Dog :public Animal /
阅读全文