-
13、匿名对象、默认构造函数、隐式构造、内部类、局部类
目录 对象类型的参数和返回值 匿名对象(临时对象) 隐式构造 默认构造函数 友元 内部类 局部类对象类型的参数和返回值//使用对象类型作为函数的参数或者返回值,可能会产生一些不必要的中间对象class Car{private:public: int m_price; Car(int price = 0):m_price(price){ cout << "Car(int) - " << this << " - " &...…
-
12、static、const、引用成员、拷贝构造函数、深、浅拷贝
目录 静态成员 静态成员经典应用 - 单例模式 const成员 引用类型成员 拷贝构造函数 深拷贝、浅拷贝静态成员静态成员 被static修饰的成员变量\函数 可以通过对象(对象.静态成员)、对象指针(对象指针->静态成员)、类访问(类名::静态成员)静态成员变量 存储在数据段(全局区,类似于全局变量),整个程序运行过程中只有一份内存 对比全局变量,它可以设定访问权限(public、protected、private),达到局部共享的目的 ...…
-
11、多继承
目录 多继承 多继承体系下的构造函数调用 多继承-虚函数 同名函数、同名成员变量 菱形继承 虚继承 多继承的应用多继承C++允许一个类可以有多个父类(不建议使用,会增加程序设计复杂度)class Student{public: int score; virtual void study(){ cout<<"Student::study()"<<endl; } Student(){ cout&l...…
-
10、虚函数、虚函数表、纯虚函数、抽象类
目录 虚函数 虚析构函数 纯虚函数虚函数C++中的多态通过虚函数(virtual function)来实现虚函数:被virtual修饰的成员函数只要在父类中声明为虚函数,子类中重写的函数也自动变为虚函数(也就是说子类中可以省略virtual关键字)虚函数的实现原理是虚表,这个虚表里面存储着最终需要调用的虚函数地址,这个虚表也叫虚函数表class Animal{public: int age;// void speak(){// cout<<"An...…
-
9、初始化列表、多态
目录 初始化列表 父类的构造函数 父类指针与子类指针 多态初始化列表特点 一种便捷的初始化成员变量的方式 只能用在构造函数中 初始化顺序只跟成员变量的声明顺序有关一、下面的2种写法是等价的struct Person{ int _age; int _height; Person(int age,int height){ this->_age = age; this->_height = height; ...…
-
8、析构函数、命名空间、类的声明和实现
目录 析构函数的作用 命名空间 类的声明与实现 继承 成员访问权限析构函数的作用class Car8{public: int price; Car8(){ cout<<"Car::Car()"<<endl; price = 2000; } ~Car8(){ cout<<"Car::~Car()"<<endl; }};class Person8{...…
-
7、封装、内存布局、malloc、free、new、delete
目录 封装 内存空间布局 对象的内存 memset的使用 构造函数 默认情况下,成员变量的初始化 析构函数封装成员变量私有化,提供公共的getter和setter给外界去访问成员变量有些变量我们不希望外界访问,那么我们就把该变量私有化,这样的好处是: 外界无法直接访问可以过滤数据,比如下面的age赋值小于0时就直接返回class Person{private: int _age;public: int m_id; int m_age; int m_...…
-
6、类、对象及对象内存布局
目录 struct和class的用法 C++编程规范 对象的内存布局 this指针struct和class的用法一、面向对象的常见知识点类、对象成员变量、成员函数封装、继承、多态二、struct与classC++中可以使用struct/class来定义一个类 struct和class的区别 struct的默认成员权限是public class的默认成员权限是privatestruct定义一个类//类的定义struct Person{ //成员变量 int a...…
-
5、引用的本质(二)
目录 通过汇编分析指针 通过汇编分析引用 其它数据类型的引用 常引用 常引用可以指向临时变量通过汇编分析指针void pointerNature(void){ int age = 3; int *p = &age; *p = 5; /** 0x100009c40 <+0>: pushq %rbp 0x100009c41 <+1>: movq %rsp, %rbp ...…
-
4、引用的本质
目录 引用 引用与指针 引用的本质 寄存器 汇编指令引用在C语言中,使用指针(Pointer)可以间接获取、修改某个变量的值 在C++中,使用引用(Reference)可以起到跟指针类似的功能注意点 1、引用相当于是变量的别名(基本数据类型、枚举、结构体、类、指针、数组等,都可以有引用) 对引用做计算,就是对引用所指向的变量做计算2、在定义的时候就必须初始化,一旦指向了某个变量,就不可以再改变,“从一而终”3、可以利用引用初始化另一个引用,相当于某个...…
-
3、内联函数、const
目录 内联函数 const内联函数使用inline修饰函数的声明或者实现,可以使其变成内联函数 建议声明和实现都增加inline修饰特点 编译器会将函数调用直接展开为函数体代码 可以减少函数调用的开销 会增大代码体积注意 尽量不要内联超过10行代码的函数 有些函数即使声明为inline,也不一定会被编译器内联,比如递归函数内联函数与宏 内联函数和宏,都可以减少函数调用的开销 对比宏,内联函数多了语法检测和函数特性 思考以下代码的区别#define sum(x)...…
-
2、cin、cout、函数重载、extern C、默认参数
目录 C++中常使用cin、cout进行控制台的输入、输出 函数重载 extern “c” 默认参数C++中常使用cin、cout进行控制台的输入、输出参考文章:https://blog.csdn.net/zhanghaotian2011/article/details/8868577cin用的右移运算符» cout用的是左移运算符« endl是换行的意思cout语句的一般格式为:cout«表达式1«表达式2«……«表达式n; cin语句的一般格式为:cin»变量1...…
-
1、简介
没有C语言基础的同学,建议先快速学习一下C语言】 C语言快速入门目录 C++的应用领域C++的应用领域一、应用领域游戏(Cocos2d-X)、图像、多媒体、网络、嵌入式数据库(Oracle、MySQL)、浏览器(Chrome)、搜索引擎(Google)操作系统、驱动程序、编译器(GCC、LLVM)、编程语言(Swift)HPC(High Performance Computing,高性能计算)iOS开发(Runtime、AsyncDisplayKit)Android开发(NDK、fre...…
-
3、共用体
参考文章:C语言共用体(C语言union用法)详解目录 共用体 共用体应用共用体通过前面的讲解,我们知道结构体(Struct)是一种构造类型或复杂类型,它可以包含多个类型不同的成员。在C语言中,还有另外一种和结构体非常类似的语法,叫做共用体(Union),它的定义格式为union 共用体名{ 成员列表};结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。结构体占用的内存大于等于所有成...…
-
2、位域
参考文章:C语言位域(位段)详解目录 位域 位域的存储 无名位域位域有些数据在存储时并不需要占用一个完整的字节,只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态,用 0 和 1 表示足以,也就是用一个二进位。正是基于这种考虑,C语言又提供了一种叫做位域的数据结构。 在结构体定义时,我们可以指定某个成员变量所占用的二进制位数(Bit),这就是位域。定义结构体代码如下:struct Test{ unsigned m; unsigned n:4; u...…
-
1、结构体
参考文章:结构体大小与内存对齐问题 参考文章:C内存对齐原则 目录 结构体介绍 结构体大小及内存对齐结构体介绍一、结构体的声明及类型定义声明struct lcpoint{ float x; float y;};类型定义//定义了一个新的类型LCDate,与int short等地位是相等的,是一个新的类型。typedef struct{ int year; int month; int day;}LCDate;二、结构体的使用//...…
-
终端常用加解密指令
参考文章:OpenSSL新手自学:如何生成RSA私钥并用于数字签名目录 hash值相关 签名相关hash值相关一、查看字符串base64值echo -n 字符串 | base64二、MD5相关1、查看字符串MD5echo -n 字符串 | md52、查看字符串MD5md5 -s 字符串3、查看文件MD5md5 文件名三、SHA相关1、查看字符串SHA1echo -n 字符串 | openssl dgst -sha12、查看文件SHA1openssl dgst -sha1 文件名3、...…
-
网络安全
目录 什么是网络安全? 拟人模型 可访问与可用性 身份认证 信息完整性 机密性 什么是网络安全?网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。可访问与可用性(access and availability): 网络服务必须对被授权用户可访问与可用身份认证(authentication): 发送方与接收方希望确认彼此的真实身份信息完整性(message integrit...…
-
字符串加密
参考文章:https://github.com/CoderMJLee/MJCodeObfuscation目录 为什么要加密 如何加密 代码实现 为什么要加密创建一个stringTest的测试工程,在viewDidLoad方法中添加如下代码:NSString * key = @"helloWorld!";编译运行程序,并将编译完成的可执行文件找到,在MachOView软件中打开,如图可清晰的看到程序中所书写的字符串,这就是问什么要进行字符串加密的原因。尤其是程序中存放的重要的字符串...…
-
各种文件说明
目录 CSR 证书 p12CSRCSR( Certificate Signing Request 证书签名请求)文件是一个用于请求数字证书的文件,通常在生成公钥和私钥后创建。它包含了一些重要的信息,用于向证书颁发机构(CA)请求签署证书。 以下是关于 CSR 文件的主要内容和结构:一、主要内容 1、公钥:CSR 文件中包含了生成时所创建的公钥,CA 会用这个公钥来生成证书。 2、主体信息:CSR 中包含关于证书持有者的信息,例如: 公共名称(Common Name, CN...…