askunix

askunix@163.com

四种强制类型转换

四种强制类型转换在实际开发中使用场景比较较多,做以下总结: (一)用法:static_cast <类型说明符> (变量或表达式) 它主要有如下几种用法: (1)用于类层次结构中基类和派生类之间指针或引用的转换 进行上行转换(把派生类的指针或引用转换成基类...

2018-12-08 17:14:54

阅读数 938

评论数 0

STL:vector扩容、销毁、与list和deque的区别

1、vector是怎么扩容的? reserve()是容器预留空间,但并不真正创建元素对象。 resize()是改变容器的大小,并且创建对象。 两个函数的形式是有区别的,reserve函数之后一个参数,即需要预留的容器的空间;resize函数可以有两个参数,第一个参数是容器新的大小,第二个参数是要...

2018-10-18 22:04:36

阅读数 121

评论数 0

迭代器与指针的区别

迭代器与指针的差别: 迭代器: (1)迭代器不是指针,是类模板,表现的像指针。他只是模拟了指针的一些功能,通过重载了指针的一些操作符,->, * ,++, --等封装了指针,是一个“可遍历STL( Standard Template Library)容器内全部或部分元...

2018-10-18 22:04:18

阅读数 415

评论数 0

C++11 智能指针

本文介绍三个智能指针:unique_ptr、shared_ptr、weak_ptr。auto_ptr已经被C++11丢弃了。 C++的内存管理中,当我们写一个new语句时,一般立即跟一个delete,但是也很难保证没有运行到delete就返回了。申请的资源没有释放,就会造成内存泄露。 ...

2018-08-05 22:42:16

阅读数 558

评论数 0

C++内存模型

以下内容,大部分整理自网络 C分为四个区:堆,栈,静态全局变量区,常量区。 详情阅读:C语言内存模型 C++内存分为5个区域(堆栈全常代 ): (1)堆 heap : 由new分配的内存块,其释放编译器不去管,由我们程序自己控制(一个new对应一个delete)。如果程序...

2018-08-05 13:32:41

阅读数 1051

评论数 1

this指针能否为空指针?

首先我们知道,this指针指向的是当前对象。 测试代码: 空指针p同时访问了 test() 函数和 change() 函数,在 test() 函数调用过程中没有报错,但是在 change() 函数中报错了。 实际上这两个类是这样的: void test(person *co...

2018-08-04 23:55:51

阅读数 834

评论数 0

static作用 & const作用

static作用: 面试题:static有什么作用? 答:在C语言中,static主要定义全局静态变量,定义局部静态变量,定义静态函数。 一、 定义全局静态变量 :在全局变量前面加上关键字static,该全局变量变成了全局静态变量。全局静态变量有以下特点: (1) ...

2018-08-04 22:46:41

阅读数 725

评论数 0

构造函数能不能声明为虚函数,析构函数呢?为什么?

一:构造函数不能声明为虚函数的原因? 构造一个对象时,必须知道对象实际类型,而虚函数是在运行期间确定实际类型的。而在构造一个对象时,由于对象还未构造成功,编译器就无法知道对象的实际类型,是该类本身,还是派生类,还是其他。 虚函数的执行依赖于虚函数表,而虚函数表是在构造函数中进行初始化的,即初始...

2018-08-04 18:08:51

阅读数 315

评论数 0

回炉重造——虚函数和纯虚函数

写在前面 C++中的虚函数的作用主要是实现了多态的机制。 多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用相同的代码来实现可变的算法。 C++虚函数 ...

2018-08-03 16:13:45

阅读数 709

评论数 0

C++类的六个默认成员函数

类的六个默认成员函数: 1、构造函数 概念: (1)构造函数是用于构造新对象,并将初始值赋给对象的数据成员。 (2)类型转化,适用于单参的构造函数。 用explicit修饰构造函数,抑制由构造函数定义的隐式转换,erplicit关键字类内部的构建声明上,在类的定义体外部的定义...

2018-07-30 12:41:10

阅读数 767

评论数 0

【STL】算法使用篇

一、概述 STL提供了大约100个实现算法的模版函数,比如算法for_each将为指定序列中的每一个元素调用指定的函数,stable_sort以你所指定的规则对序列进行稳定性排序等等。这样一来,只要我们熟悉了STL之后,许多代码可以被大大的化简,只需要通过调用一两个算法模板,就可以完成所需...

2018-07-26 17:36:24

阅读数 274

评论数 0

C、CPP文件是怎样运行起来的?

C、CPP文件是怎样运行起来的? 这个问题就是编译、运行的问题,在很多面试中都会遇到。(今日头条的研发岗面试题就问到cpp文件是怎样运行起来的?) 在此,详细说明C语言的编译运行过程,CPP参考一下也就很容易明白了。 C语言是怎么运行的? 首先放一张图,说明C语言的运行过程。 C语...

2018-07-04 09:45:45

阅读数 5254

评论数 0

分析Perm()函数功能、代码、时间复杂度

Perm()函数功能: Perm函数的功能是将传递过来的数组的后size - N 位进行全排列,将排列的每一组数都输出。 代码实现: #include<iostream> #include<String&a...

2018-04-01 13:34:37

阅读数 1387

评论数 0

C/C++关键字 asm、inline、register、virtual、volatile 详解

asm: asm允许你在你的代码中直接插入汇编语言指令, 各种不同的编译器为这一个指令允许不一致形式, 比如: asm { instruction-sequence } or asm( instruction ); inline: inlin...

2018-02-28 11:05:07

阅读数 977

评论数 0

详解地址和引用的区别

★ 相同点:    1. 都是地址的概念;    指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。    ★ 区别:    1. 指针是一个实体,而引用仅是个别名;    2. 引用使用时无需解引用(*),指针需要解引用;    3. 引用只能在定义时被初始化一次,之后不可变;指...

2018-02-14 14:24:17

阅读数 1289

评论数 0

三角形的类型判断和面积计算

在一些图形计算以及运用当中,常常需要对三角形做计算和处理,这些计算和处理也已转化成为针对这个三角形的结构体的处理。 程序设计: 要求用户输入三角形的三条边长,判断三角形的类型,并求出三角形的面积。 #include<iostream> #i...

2018-02-14 13:20:23

阅读数 163

评论数 0

main函数的三个参数(argc、argc、envp)详解

函数原型: int main( int argc, char *argv[], char *envp[] ) The main function marks the beginning and end of program execution. A C or C++ prog...

2018-01-01 00:54:44

阅读数 522

评论数 0

只此一文、道破C++赋值运算符重载玄机(operator)

赋值运算符重载是C++重点难点内容,什么是赋值运算符?什么是赋值运算符重载?两者有什么联系?怎么学习?怎么理解?怎么应用?初学者往往容易一头雾水,作者总结这篇文章就是为了解决C++初学者的疑惑。 赋值运算符 我的理解:赋值运算符和变量赋值一样,变量之间可以赋值,那么对象也应该具有这样的特性。赋值运...

2017-12-06 21:01:16

阅读数 161

评论数 0

类模板——深入浅出

类模板就是Class的模板,和之前写过的函数模板大同小异。函数模板概念以及实现原理学习链接:点击打开链接 一、那么什么是类模板?有什么作用呢? 类模板也是对数据类型进行参数化处理,奖类模板实例化就是指定具体数据,将得到一个具体的、可定义对象的类。 一般写法比较单一,如果要处理多种数据类型就要定义多...

2017-11-29 17:11:15

阅读数 193

评论数 0

函数模板概念及实现原理

函数模板概念及实现原理 C++为我们提供了函数模板机制。所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。   换一种说法:模板是对类型的参数化,对函数类型(包括返回类型和参数类型)进行参数化,就可以使用函数处理某个类型...

2017-11-25 21:30:45

阅读数 698

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭