C++
文章平均质量分 51
一城婳
这个作者很懒,什么都没留下…
展开
-
C++内联函数
对于经常要使用的代码段,为了方便使用会将其封装成函数。然而在调用函数时会建立栈帧,增加了额外的开销。为了节省开销,在C语言中会使用宏替换。然而宏具有一些缺点:1)不能调试;2)由于宏使用简单的文本替换,对于有些情况,在同一个作用域中同一个宏使用两次会出现重定义错误。#define SWAP(a,b)\ int tmp = a; \ a = b; \ b = tmp;...原创 2018-03-29 14:01:42 · 6740 阅读 · 1 评论 -
快速理解C++中函数的重载,隐藏,重写
重载:在同一个作用域内;函数名相同,参数列表不同(参数个数不同,或者参数类型不同,或者参数个数和参数类型都不同),返回值类型可相同也可不同;这种情况叫做c++的重载,C语言不支持重载特征:1.同一个作用域2.函数名相同3.参数不同(类型,个数,顺序)4.Virtual关键字可有可无举例:输出运算符重载c++函数重载是一种静态多态(又叫做静态联编,静态绑定,静态决议)覆盖/重写:...原创 2018-08-26 10:29:11 · 178 阅读 · 0 评论 -
C/C++内存机制
内存的申请方式1. 静态内存静态内存是指在程序开始运行时由编译器分配的内存,它的分配是在程序开始编译时完成的,不占用CPU资源。程序中的各种变量,在编译时系统已经为其分配了所需的内存空间,当该变量在作用域内使用完毕时,系统会自动释放所占用的内存空间。变量的分配与释放,都无须程序员自行考虑。eg:基本类型,数组 2. 动态内存用户无法确定空间大小,或者空间太大...原创 2018-06-14 11:28:10 · 148 阅读 · 0 评论 -
C/C++中的const关键字
const是单词constant的简写,若一个变量前用const修饰,就意味着该变量里的数据可以被访但不能被修改,即该变量是“只读”的。1.const 修饰类的成员变量,表示成员常量,不能被修改。2.const修饰函数承诺在本函数内部不会修改类内的数据成员,不会调用其它非 const 成员函数。3.如果 const 构成函数重载,const 对象只能调用 const 函数,非 const ...原创 2018-07-31 14:57:02 · 149 阅读 · 0 评论 -
红黑树
什么是红黑树红黑树是一棵二叉搜索树,它在每个节点上增加了一个存储位来表示节点的颜色,可以是Red或Black。通过对任何一条从根到叶子简单路径上的颜色来约束,红黑树保证最长路径不超过最短路径的两倍,因而近似于平衡。红黑树是满足下面红黑性质的二叉搜索树1. 每个节点,不是红色就是黑色的2. 根节点是黑色的3. 如果一个节点是红色的,则它的两个子节点是黑色的4. 对每个节点,从该节点到其...原创 2018-07-31 14:59:12 · 202 阅读 · 0 评论 -
C/C++ 中的static
快速了解staticstatic的作用有三条:一、第一个作用:隐藏。加了static,就会对其它源文件隐藏.二、static的第二个作用是保持变量内容的持久.延长局部变量的生命周期三、static的第三个作用是变量默认初始化为0。使用static的格式: static 变量类型 变量名 static 函数类型 函数名(函数参数表)回答static的问题应该从C语...原创 2018-08-26 10:26:10 · 140 阅读 · 0 评论 -
转发服务器
为什么需要转发服务器?怎么实现转发服务?common.h#ifndef __COMMON_H__ //主要是公共的东西,一些头文件#define __COMMON_H__#include <stdio.h>#include <stdarg.h>#include <string.h>#include <errno.h>#i...原创 2018-08-29 11:02:37 · 3286 阅读 · 0 评论 -
C++对象模型----单继承/多继承/菱形继承/菱形虚拟继承
什么是虚函数class A{public : A() { /*cout << "A()" << endl;*/ } virtual void show() { cout << "A::show()" << endl; } virtual void show1() { cout << "原创 2018-07-31 14:47:02 · 223 阅读 · 0 评论 -
new和delete
1.new/delete 和operator new/operator delete和malloc/free的关系2.new[]时底层处理的机制3.new/delete和malloc/free的区别realloc的作用:1.开辟一段新的空间2.扩容3.重新开空间C++通过new和delete动态管理内存。New/delete动态管理对象New/delete[]动...原创 2018-07-31 14:48:20 · 108 阅读 · 0 评论 -
C++运算符重载
C++运算符重载在C++中,预定义的运算符只能进行基本数据类型的操作。而对于用户的自定义类型,不能使用这些预定义的运算符来操作。如何实现两个对象之间的运算?这时候需要用户编写程序来说明运算符的功能。使用运算符的重载可以为已有的运算符赋予多重含义,使同一个运算符能够作用于不同类型的数据导致不同类型的行为。运算符重载是为了增强程序的可读性,只能重载已经存在的运算符。特征:1)函数的构成:函数类型ope...原创 2018-05-07 13:51:02 · 167 阅读 · 0 评论 -
C++多态
多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphism),字面意思多种形状。多态多态性是面向对象程序设计的重要特性之一.所谓的多态就是指用同一个名字定义不同的函数,这些函数执行不同而又相似的操作,从而可以使用相同的方式来调用这些具有不同功能的同名函数.在C++中,用相同的函数名来标识这些函数,就可以达到用相...原创 2018-05-07 13:49:10 · 103 阅读 · 0 评论 -
注释转换
//实现注释转换文件#include<stdio.h>#include"convert.h"#pragma warning(disable:4996)#pragma warning(disable:4013)static int status = NULLSTAT; //定义一个全局变量void do_null_start(FILE *ipf, FILE *op...原创 2017-12-02 17:20:42 · 147 阅读 · 0 评论 -
C++之模板
1、什么是模板? 2、模板的原理? 3、模板函数、模板类 4、非类型模板参数 5、特化--类型萃取 6、模板的分离编译1,什么叫做模板?C++最重要的特性之一就是实现代码的重用.重用要求代码具有通用型.实现代码通用,不受数据类型的影响,就可以自动的使用数据类型的变化.这就是参数多态,它是通过模板实现的.void swap(int* x, int* y){ int tmp...原创 2018-07-31 15:01:35 · 121 阅读 · 0 评论