
C++学习历程
文章平均质量分 61
不经历风雨,怎么见彩虹
Payshent
相互交流,共同进步
展开
-
const的常见用法
在我们学习C语言或者C++的时候const或许是其中一个容易混淆的知识点,那么今天就来总结一下const的一些用法。const 的用法主要是防止定义的对象被再次的修改,也就是const修饰的是一个常量而不是一个变量。那么既然是一个常量的话就需要对它进行初始化一个值。 下面就来介绍const的几种常见用法: 1、用于定义常量,定义之后的对象不能再被修改。 const int a = 100;原创 2017-04-30 11:22:36 · 660 阅读 · 0 评论 -
详谈智能指针
一、什么是智能指针 在讲智能指针之前我们必须先知道什么是智能指针,智能指针是一个类,是对普通指针的一个封装使得智能指针对象具有普通指针类型一样的操作。 智能指针是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄漏。它的具体通用的技术就是实现引用计数。(这个下面会讲) 智能指针是将一个计数器与类指向的对象相关连,引用计数就是跟踪该类有多少个原创 2017-06-29 15:29:00 · 1538 阅读 · 0 评论 -
模拟实现string类
深浅拷贝: 浅拷贝:也称位拷贝,编译器只是直接将指针的值拷贝过来,结果多个对象共用同一块内存,当一个对象将这块内存释放掉之后,另一些对象不知道该块空间已经还给了系统,以为还有效,所以在对这段内存进行释放操作的时候,一个内存空间被释放多次,发生了访问违规,程序崩溃。 深拷贝:为了解决浅拷贝的问题,深拷贝则不是直接将指针的值拷贝,它是为指针p2开辟与p1相同大小的内存空间,然后将p1所指的内原创 2017-07-06 22:46:12 · 1164 阅读 · 0 评论 -
STL中vector的实现及面试问题
一、前言: 在学习c++的时候我们会接触两个库,一个是boost库另外一个就是STL库。关于STL库候捷先生的《STL源码剖析》中已经写的很详细了,今天我就关于STL中的vector实现及面试中的一些与之相关的问题做一个讲解。 在面试C++的时候关于vector是作为基础知识经常被问到的,如果面试官问你vector的实现原理,你会怎么回答呢? 二、vector的实现原理及实现机制 关于v原创 2017-06-28 11:38:34 · 5197 阅读 · 1 评论 -
C++知识框架体系图
原创 2017-02-16 12:46:33 · 5764 阅读 · 35 评论 -
C语言模拟实现继承、多态
一、面向对象与面向过程说到C语言和C++的区别有人就会说C语言是面向过程的语言,而C++是面向对象的语言。那么到什么是面向过程?什么又是面向对象呢?下面我就简单的说说我对与面向过程和面向对象的认识。 1)什么是面向对象和面向过程? 面向过程就是分析解决问题的步骤,然后用函数把这些步骤一步一步的进行实现,在使用的时候进行一一调用就行了,注重的是对于过程的分析。面向对原创 2017-04-17 13:46:37 · 764 阅读 · 0 评论 -
C++中局部变量、全局变量、静态局部变量、静态全局变量
我们知道在C++中的变量根据定义的位置的不同生存周期,具有不同的作用域。具体分为6种:原创 2017-04-19 15:05:15 · 2234 阅读 · 0 评论 -
定义一个不能被继承的类
学习完C++我们知道了,类是可以被继承的,而继承也分为三种就是:public、private、protected。那么我们如何定义一个不能被继承的类呢? 在C++里面子类的构造函数会去调父类的构造函数,而子类的析构函数也会去调父类的析构函数。如果我们想让一个类不能被继承,那么就把它的构造函数和析构函数定义为私有的,这样当一个类去继承时调构造函数和析构函数的时候就会发生编译错误。可是这样又会引发一个原创 2017-04-30 12:06:24 · 1487 阅读 · 0 评论 -
C、C++中的结构体
今天复习一下struct,顺便挖掘一下以前没注意的小细节:基本定义:结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量。结构体定义:第一种:只有结构体定义[cpp] view plain copy print?struct stuff{ char job[20];转载 2017-05-02 09:40:07 · 631 阅读 · 0 评论 -
C/C++程序的编译链接过程
在以前学习C语言的时候,想必大家写的第一个代码都是“hello world”吧。在以前我们调试一个代码的时候是在vc++6.0或者是在vs上面调试的,这种就是集成开发环境,它为我们简化了一个代码的编译链接的过程但是却对初学者又蒙上了面纱。而当我们学习了更多一些知识的时候就该看看这个面纱下面到底隐藏着什么。 大家都知道我们所编写的C语言程序只是一个后缀为“.c”的文件,这个文件是不能直接被计算机所运原创 2017-05-16 17:29:19 · 2602 阅读 · 0 评论