C++学习
fpn233
这个作者很懒,什么都没留下…
展开
-
C/C++学习指南》语法篇—笔记 (二十三、模板)
C/C++学习指南》语法篇—笔记 (二十三、模板)template:定义一个模板,自动适应各个类型template <typename T>T findmax(T arr[], int len){ T val = arr[0]; ...}相同的算法,元素类型用T代替。使用时,用<>来具体指导typename的类型。int result = findmax<int>(arr,4);类模板template <typename T>cl原创 2020-08-08 21:28:52 · 154 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (二十二、内部类与名字空间)
《C/C++学习指南》语法篇—笔记 (二十二、内部类与名字空间)内部类名字空间内部类把一个类定义写在另一个类的内部Class AAA{public: //定义一个内部类 class Inner { public: char name[64]; };};在使用内部类时,类名要使用全称 AAA::InnerAAA::Inner a;特别:内部类和外部类互相没有特权,不是朋友关系,不是父子关系,没有任何特殊关系。外部类无法自由访问内部类,内部类也同样无法自由访问外部类。名字原创 2020-08-08 21:17:55 · 156 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (二十一、重载操作符)
《C/C++学习指南》语法篇—笔记 (二十一、重载操作符)重载算数操作符重载算数操作符class Fraction{public: Fraction(int n, int d):num(n),den(d) { } int num; //分子 int den; //分母};operator +是重要的重载操作符,形式上类似于成员函数重载操作符形式上像一个函数,但它不是函数名称:operator +,固定不变返回值:类型不变,总是为该对象的类型参数:基本上也不变受public原创 2020-08-08 21:07:43 · 162 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (二十、拷贝构造函数)
《C/C++学习指南》语法篇—笔记 (二十、拷贝构造函数)拷贝构造函数是一种特殊的构造函数:是构造韩叔叔,函数名的类名、没有返回值特殊的构造函数,参数形式的固定的 const Object(类名)& otherclass Object{public: Object(const Object& other);};作用:以一个对象为蓝本,来构造另一个对象,a是b的一个拷贝/备份,两者内容完全相同。Object b;Object a(b); //或写成 Object原创 2020-08-08 20:33:18 · 144 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (十九、继承)
《C/C++学习指南》语法篇—笔记 (十九、继承)继承概念虚拟继承(函数重写)继承关系中的构造与析构类的大小多重继承纯虚函数与抽象类继承概念class B 继承于 class A,把A称为父类(基类),把B称为子类(派生类)class B : public A {};当B继承与A时,自动将父类中的所有public成员继承。访问修饰符:protected(受保护的):该成员不能被外部访问,同private该成员可以被子类继承,同public子类和父类在内存上的关系:子类对象的前半部原创 2020-08-08 20:09:59 · 160 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (十八、动态创建对象)
《C/C++学习指南》语法篇—笔记 (十八、动态创建对象)在C++中,用new/delete操作符取代malloc/free标准库函数申请/释放一个对象:int* p = new int; 或 int* p = new int(12); //设初始值delete p;特殊:new返回值直接就是对象指针,不用转换类型,new的时候可以设初始值,new操作符不用手动计算申请空间大小。申请/释放多个对象:int* p = new int[1024]; delete [] p;注:使用[]指原创 2020-08-07 22:15:36 · 182 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (十七、面向对象编程 类)
《C/C++学习指南》语法篇—笔记 (十七、面向对象编程 类)类(class)面向对象编程,一种设计思想。面向对象编程的实现:假设存在一个对象,初步设想它应该提供哪些服务。定义如何使用它的服务,细化为函数。创建销毁对象,其它功能函数(该对象提供的服务)选择一种实现方法,写程序完成上述函数接口。类(class)是对结构体struct的增强,也是用于自定义类型。将关键字struct改为class;增加访问修饰符 pubilc/private/protectedclass Object{p原创 2020-08-07 21:57:09 · 166 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (十六、多文件项目及编译过程)
《C/C++学习指南》语法篇—笔记 (十六、多文件项目及编译过程)extern项目生成过程 build头文件及include预处理指令--define宏定义★★★main函数的参数与返回值externextern:声明外部函数。在A.cpp中使用B.cpp中的函数,需要extern声明。extern:声明外部全局变量在A.cpp中访问B.cpp中的全局变量,需要extern声明作用:告诉编译器,在某个cpp文件中,存在那么一个函数/全局变量。符号(symbol):把函数名和全局变量名称为符号。原创 2020-08-05 21:29:14 · 226 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (十五、文件操作)
《C/C++学习指南》语法篇—笔记 (十五、文件操作)保存数据到文件写入数字写入字符串写入结构体读取数据文件用于持久的存储数据。断电后数据不消失,下次加点,可以读取。文件属性:文件名路径长度,以字节计算内容只读/读写标准C函数操作文件:fopen:打开一个文件fclose: 关闭文件fwrite:写入数据fread:读出数据保存数据到文件1、打开文件FILE* fopen(const char* filename, const char* mode);filenam原创 2020-08-04 22:21:57 · 204 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (十四、ANSI C标准函数库)
《C/C++学习指南》语法篇—笔记 (十四、ANSI C标准函数库)sprintf 与 sscanf ANSI组织,定义了C标准,及标准库函数,即这套函数在任何平台上都被支持,且保证函数功能一致(基本一致)。ANSI C标准函数库(中文)sprintf 与 sscanf <stdio.h>sprintf 与 sscanf 字符串的格式化与解析sprintf:将相关内容格式化到目标缓冲区里#include <stdio.h>...char buf[128];s原创 2020-08-04 16:25:02 · 185 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (十三、字符串)
《C/C++学习指南》语法篇—笔记 (十三、字符串)字符串的几种形式字符串操作字符串插入/删除字符串分割C分格字符串 (C-Style String)在内存中紧密排列的一串字符,以0结尾。以内存的首地址来代表该字符串,char*字符串的几种形式字符数组 char buf[128] = "hello"; char* p = buf;char*指针字符串常量 "hello world"注:都是 char*类型的字符串常量:字符串常量类型是const char*,它本身表示一个内存地址原创 2020-08-04 15:33:37 · 131 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (十二、引用)
《C/C++学习指南》语法篇—笔记 (十二、引用)C++特有的。引用 (a reference of target):本质上是指针,指针类型: ---------- 引用类型:int* int&double* double&Object* Object&指针定义int a = 123;int* p = &a; //【p指向了变量a】*p = 999;引用定义:i原创 2020-08-04 11:35:47 · 117 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (十一、链表)
《C/C++学习指南》语法篇—笔记 (十一、链表)链表概念有头链表的构造(插入/删除操作简单)插入与删除节点链表与数组比较链表概念数据结构里的一种类型:把若干个对象用指针串联起来,形成一个链状的数据结构,称之为“链表”。C/C++中实现链表:用struct语句定义一个类型,重:在俩面添加一个成员变量next,用于指向下一个对象。Struct Student{ int id; char name[16]; Student* next;}下面构建一个链表://① 先准备好四个对象Stu原创 2020-08-04 10:50:37 · 196 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (十、结构体)
《C/C++学习指南》语法篇—笔记 (十、结构体)结构体定义C/C++的基本数据类型:char/short/float/double 数组,指针将基本的数据类型组合起来,形成新的数据类型 “自定义类型”例如:定义一个新类型struct student{ int id; int grade; char name[32];}结构体定义基本形式: 其中,struct是关键字,TypeName为新类型的名称,Members是一系列成员变量。struct TypeName{ //Memb原创 2020-08-03 22:19:30 · 144 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (九、动态分配内存--malloc_free)
《C/C++学习指南》语法篇—笔记 (九、动态分配内存--malloc_free内存管理器 MM非常重要:堆 (MM管理的内存区域)malloc函数free函数注:特点问题:数组一块连续内存,长度 (常量)必须在代码里固定。内存管理器 MMMM,Memory Manager :系统中存在一个内存管理器,负责管理一堆闲置的内存。MM提供服务:应用程序可以想MM申请(借出)一块指定大小的内存,用完之后再释放(还回)。void* ptr = malloc(1024); //申请,从MM借出内存free原创 2020-08-03 20:39:25 · 143 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (八、指针)
《C/C++学习指南》语法篇—笔记 (八、指针)提要:变量与内存使用指针类型表示地址关于指针星号操作:按地址访问指针与数组提要:变量与内存内存用于存储数据,最小单元是字节(8bit),每个单元都有一个编号(地址:0x00000000~0xFFFFFFFF),地址是一个整数变量大小(sizeof()返回变量大小),int型是4字节,变量的大小指它在内存中占了几个字节变量地址就是该变量在内存中的位置。使用&取得该变量地址。变量赋值:向内存写入数据。读变量的值,从内存中读取数据。每个变量都有原创 2020-08-03 20:39:03 · 160 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (七、函数)
《C/C++学习指南》语法篇—笔记 (七、函数)函数函数的其他形式函数的传值全局变量与局部变量变量作用域函数具有一定功能的盒子:给它输入一些数据,返回一些数据函数的定义形式://name:函数名,字母数字和下划线组合//arguments:参数,可带N个参数(N>0)。每个参数以逗号分开,例:int a, int b//return_type:返回值类型。一个函数可以返回一个数值//body:函数体,也是函数的具体实现return_type name(arguments)原创 2020-08-03 20:38:35 · 131 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (六、语句)
《C/C++学习指南》语法篇—笔记 (六、语句)if...elseswitch...caseif…elseswitch…case原创 2020-07-28 21:05:56 · 127 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (五、表达式与操作符)
《C/C++学习指南》语法篇—笔记 (五、表达式与操作符)算数运算符与赋值运算符关系表达式与条件表达式算数运算符与赋值运算符‘+’ ‘-’ ‘*’‘/’ (除法运算,整型相除,没有小数部分;浮点型相除,带小数)‘%’ (模运算,求余数,操作数不能是小数,只能用在整数上)‘=’ 赋值运算符关系表达式与条件表达式真:true,一个非0整数值假:false,整数0< > == >= <= !=...原创 2020-07-20 22:01:38 · 112 阅读 · 0 评论 -
《C/C++学习指南》语法篇—笔记 (四、字符与字符数组)
《C/C++学习指南》语法篇—笔记 (四、字符与字符数组)字符在计算机里,用数字来代表字符字符常量:‘A’,‘0’, … 以单引号括起来,他们本身代表了一个数字%c :输出字符格式的,用%c来打印一个字符转义字符‘ \n ’ 换行‘ \t ’ Tab‘ " ’ 双引号‘ \ ’ 反斜杠字符数组用...原创 2020-07-19 11:19:10 · 101 阅读 · 0 评论 -
C/C++学习笔记(语法篇) 三、数组
C/C++学习笔记(语法篇) 三、数组数组原创 2020-07-19 10:36:18 · 118 阅读 · 0 评论 -
C/C++学习笔记(语法篇) 二、变量与常量
C/C++学习笔记(语法篇) 二、变量与常量整数:char型 :short型:int型:小数:double型:高精度(支持更多有效数字)float型:低精度原创 2020-07-19 10:00:14 · 109 阅读 · 0 评论 -
C/C++学习笔记(语法篇) 一、printf scanf
C/C++学习笔记(语法篇) 一printf() 格式化输出使用逗号将参数分隔开使用%d来打印整数,使用%04d来控制宽度使用%f来打印小数,使用%.4f来控制小数点后位数int型:整数; double型:小数int a = 1;int d = 2.34;printf("abc\n");printf("a:%d,b:%03d\n",23,a);printf("a:%f,b:%.3f\n",23.3,d);scanf() 从控制台接收用户的输入int n;scanf("%d",原创 2020-07-18 21:31:22 · 204 阅读 · 0 评论