C++
楠子疯
这个作者很懒,什么都没留下…
展开
-
1 - 内存四区
数据类型数据类型的概念:“类型”是对数据的抽象,类型相同的数据有相同的表现形式、存储格式以及相关的操作。程序当中使用的所有数据都必定属于某一种数据类型。数据类型的本质:数据类型可以理解为创建变量的模具,是固定内存大小的别名。数据类型为编译器预算对象(变量)分配指定的内存空间大小。数据类型的别名:#include <iostream> int main(...原创 2019-07-30 10:14:42 · 123 阅读 · 0 评论 -
13 - 运算符重载
运算符重载概念所谓重载,就是重新赋予新的含义。函数重载就是对一个已有函数赋予新的定义,使之实现新的功能,因此,一个函数名就可以用来代表不同功能的函数,也就是“一名多用”。运算符也可以重载,运算符重载的本质是一个函数。class Complex{public: int a; int b; friend Complex operator+(Complex &a...原创 2019-08-07 10:50:39 · 151 阅读 · 0 评论 -
12 - 类和对象
类和对象基本概念1)类、对象、成员变量、成员函数2)面向对象三大概念:封装、继承、多态封装(Encapsulation)封装是面向对象程序设计最基本的特性。把数据(属性)和函数(操作)合成一个整体。把客观的事物抽象成类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏(把属性和方法进行封装,对属性和方法进行访问控制)。C++中类的封装:成员变量...原创 2019-08-07 09:59:31 · 156 阅读 · 0 评论 -
16 - C++模板
模板概论C++提供了函数模板,所谓函数模板。实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以使用这个模板代替,不必定义多个函数,只需要在模板中定义一次即可。在调用函数时,系统会根据实参的类型来取代模板中的虚拟类型,从而实现不同函数的功能。C++提供两种模板机制:函数模板和类模板。模板把函数或者类...原创 2019-08-19 08:06:55 · 160 阅读 · 0 评论 -
14 - 继承和派生
继承概念面向对象程序设计有四个主要特点:抽象、封装、继承和多态。要较好的进行面向对象程序设计,还必须了解面向对象程序设计两个重要特征——继承和多态。类之间的关系包含关系,用以描述一个类由多个“部件类”组成。实现包含关系用类成员表示,即一个类中的数据成员是另一种已经定义的类。使用关系,一个类部分地使用另一个类。通过类之间成员函数的互相联系,定义友元或者对象参数传递实现。继承关系,...原创 2019-08-08 10:46:49 · 195 阅读 · 0 评论 -
5 - 结构体
结构体基础结构体是一种构造数据类型,把不同类型的数据组合成一个整体——自定义数据类型。//声明一个结构体类型struct _Teacher // 1) 定义类型,用类型定义变量。{ char name[32]; char tile[32]; int age; char addr[128];}; // 定义结构体变量的方法stru...原创 2019-08-01 10:26:22 · 132 阅读 · 0 评论 -
8 - C++对C的加强
C语言和C++语言的关系C语言是在实践的过程中逐步完善起来的,没有深思熟虑的设计过程,使用时存在很多“灰色地带” ,残留量过多低级语言的特征 ,直接利用指针进行内存操作。C语言的目标是高效,最终程序执行效率的高效。当面向过程方法论暴露越来越多的缺陷的时候,业界开始考虑在工程项目中引入面向对象的设计方法,而第一个需要解决的问题就是:高效的面向对象语言,并且能够兼容已经存在的代码。C语言...原创 2019-08-05 09:47:14 · 128 阅读 · 0 评论 -
11 - C++对C的函数扩展
inLine内联函数C++中的const常量可以替代宏常数定义。const int A = 3; == #define A 3C++中推荐使用内联函数替代宏代码片段,C++中使用inline关键字声明内联函数。内联函数声明时,inline关键字必须和函数定义结合在一起,否则编译器会直接忽略内联请求。#include <iostream>using n...原创 2019-08-05 11:19:06 · 198 阅读 · 0 评论 -
10 - 引用
引用概念C++中增加了引用的概念,引用可以看做是一个已定义变量的别名。引用的语法:Type& name = var;void main(){ int a = 10; //c编译器分配4个字节内存。。。a内存空间的别名 int &b = a; //b就是a的别名。。。 a =11; //直接赋值 b = 14; print...原创 2019-08-05 10:41:46 · 182 阅读 · 0 评论 -
9 - C/C++当中的const
const基础知识int main(){ const int a; //声明一个整型常量 int const b; //声明一个整型常量 //指向一个整型常量的指针,所指向的内存数据不能修改,本身可以修改。 const int *c; //常量指针,指针不能被修改,但是它所指向的内存空间可以被修改。 ...原创 2019-08-05 10:07:29 · 96 阅读 · 0 评论 -
4 - 数组
数组概念数组是相同类型的变量的有序集合,是一片连续的内存空间。数组初始化int main(){ int i = 0; int a[10] = {1,2}; //其他初始化为0 int b[] = {1, 2}; //默认为[20],并不是无限大,所以需要注意不要超过了 int c[20] = {0}; for (i=0; i<10; i++) ...原创 2019-08-01 09:53:40 · 170 阅读 · 0 评论 -
3 - 字符串
字符串的基本操作字符串数组初始化int main(){ //1 大{}号法 初始化列表 //数组初始化有2种方法 默认元素个数、指定元素个数 char buf1[] = {'a', 'b', 'c', 'd', 'e'}; //若没有指定长度,默认不分配零 //若指定长度,不够报错;buf长度多于初始化个数,会自动补充零 char buf2[...原创 2019-08-01 09:18:43 · 282 阅读 · 0 评论 -
2 - 指针
指针是一种数据类型指针也是一种变量,占有内存空间,用来保存内存地址。在指针声明时,*号表示所声明的变量为指针。在指针使用时,*号表示操作指针所指向的内存空间的值。*p相当于通过地址(p变量的值)找到一块内存,然后操作内存。*p放在等号的左边赋值,就是给内存赋值,*p放在等号的右边取值,就是从内存当中获取值。指针变量和它指向的内存块是两个不同的概念。char *p;cha...原创 2019-07-31 10:11:36 · 140 阅读 · 0 评论 -
7 - C接口的封装和设计
Win32环境下动态链接库(DLL)编程原理比较大的应用程序都由很多的模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。其中可能存在一些模块的功能比较通用,在构造其他软件系统的时候仍然会被使用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序EXE文件当中,会产生一些问题:一个缺点是增加了应用程序的大小,它会占用更多的磁盘空间,程序运行时也会消...原创 2019-08-03 12:40:27 · 885 阅读 · 0 评论 -
6 - C文件
文件分类按文件的逻辑结构记录文件:由具有一定结构的记录组成(定长和不定长)。流式文件:由一个个字符(字节)数据顺序组成。按存储介质普通文件:存储介质文件(磁盘、磁带等)。设备文件:非存储介质(键盘、显示器、打印机等)。按数据的组织形式文本文件:ASCII文件,每个字节存放一个字符的ASCII码。二进制文件:数据按其在内存中的存储形式原样存放。每个文件都以...原创 2019-08-03 09:48:21 · 180 阅读 · 0 评论 -
15 - 多态
面向对象新需求根据实际的对象类型来判断重写函数的调用,如果父类指针指向的是父类对象则调用父类中定义的函数,如果父类指针指向的是子类对象则调用子类中定义的重写函数。C++中通过virtual关键字对多态进行支持,使用virtual声明的函数被重写后即可展现多态的特性。多态是设计模式的基础,多态是框架的基础。#include <iostream>using names...原创 2019-08-10 09:17:21 · 171 阅读 · 0 评论