- 博客(11)
- 资源 (2)
- 收藏
- 关注
原创 C++对象模型
1,什么是对象模型?对象模型,就是对象在内存中的存放形式,如何在内存中体现出对象的多种特性。2,为什么要了解对象模型?借用侯捷老师的一句话,勿在浮沙筑高台。我们要想写好代码,写更少的bug,或者在出现问题时能够快速分析定位问题。我们就必须了解C++的底层机制,知其然知其所以然。从而,无论是工作还是面试,我们都能以不变应万变。待续。。。...
2020-03-28 00:06:17
159
原创 把C++当作产品来研究
0.前言开发一个产品,我们会首先研究它的需求,也就是要解决的问题,然后再去用代码实现它。同样,C++也是一个软件产品,我们从一个产品的角度来分析它,并逐渐深入它。将之前学习的知识点(多态、虚表等特性)系统化。1,需求背景开发C++的需求背景是什么?C++是基于C语言开发的,那为什么不要C语言,而要开发C++呢?有的同学可能会说,是为了加类。是吗?那为什么要加类呢?之所以开发C++,是因...
2020-03-28 00:05:58
185
原创 new和malloc的区别
先看下new、delete的实现过程://new的实现过程是先分配内存再调用类的构造函数//举个例子:ClassA* pClassA = new ClassA();//new的实现过程如下:void* mem = operator_new(sizeof(ClassA));//step1:分配内存pClassA = static_cast<ClassA*>(mem); //...
2020-02-26 22:52:00
147
原创 智能指针(pointer like classes)
为什么要有智能指针C++的内存分为两种,栈和堆。栈中的内存使用之后不需要程序员去释放,会被自动释放。而在堆中分配的内存,是不能自动回收,需要程序员通过书写代码去回收。(malloc在堆中分配的内存由free来回收,New在堆中分配的内存由delete来回收。)如何智能回收内存借助RAII机制,RAII(Resource Acquisition Is Initialization),是C++采...
2020-02-13 21:25:19
196
原创 C++函数重载
函数重载是C++的特性,而C语言没有这种特性。什么是函数重载?支持相同函数名,不同参数列表的函数同时存在,而在C语言中会报错。例如:void testFun();void testFun(int param);void testFun(int param, bool flag);void testFun(bool flag, int param);以上函数在C++中能够同时...
2020-02-11 16:36:53
157
原创 C++书籍分享
目录总结:零.手册类:《C++程序设计语言(The C++ Programming Language)》《C++标准程序库(C++ Standard Library Tutorial and Reference) 》《The C++ IO Streams and Locales》《The C++ Standard (INCITS/ISO/IEC 14882-2011)》...
2019-11-17 00:13:53
1564
4
原创 函数模板(function template)
描述:函数模板做的事情就是将函数的参数类型进行抽象化,如下面代码写到的,这是将两个类进行比较,取最小的,这个类可能是int、long、double、复数、年龄类等,如果在一个工程里,多个类都涉及到这种比较,就需要对每个类都写一次这样的比较函数。因此,函数模板就是为了解决类似问题,当算法一样时,只是参数类型不一样时,将参数类型进行抽象,写出通用函数,这就是函数模板。#include &...
2019-01-04 14:25:42
597
原创 QT 创建、读写INI文件
qt中创建,读写INI文件,写个小例子。//write inivoid MyTest::WriteIni(){ //创建配置文件 QSettings *pIni = new QSettings(QCoreApplication::applicationDirPath()+"/test.ini", QSettings::IniFormat); //写入数据 p
2015-12-11 16:40:33
5524
原创 Qt界面设计(隐藏窗体标题栏,制作按钮菜单)
最近工作需要,用到Qt,现在先写个小程序和大家分享下几个我觉比较重要的知识点,希望大家指正,以后再陆续更新该例子主要功能有:1,隐藏窗口标题栏,然后自己设计一个2,新建close按钮3,按钮菜单制作voidMyTest::Init(){ //隐藏窗口的标题栏 this->setWindowFlags(Qt::FramelessWind
2015-12-04 15:16:05
12761
2
原创 两种方法测试大小端
来分享下两种检测大小端模式的方法,写得有点简单大端模式:数据的低位放在低地址小端模式:数据的低位放在高地址检测大小端,就是看看数据的低位是放在低地址处,还是高地址处。有两种方法:1、直接在visual c 下用Memory查看,2、用union检测1、直接在visual c 下用Memory查看,如下图代码Memory:如图,数据的低位0
2015-03-20 17:02:14
681
原创 时钟设置
自己总结一下系统时钟的设置,有哪里不对的,说得不全的,请大家指教啊~~为什么要设置系统时钟?不是有外部晶振可以给cpu提供工作的频率吗?是这样的,外部晶振提供的频率一般是十几兆,而我们cpu才不同情况下需要的频率不同,一般需要几百兆,而且cpu的工作频率和其他的设备工作频率也不完全一样,例如UART,所以就需要几种不同的频率,FCLK,HCLK,PCLK。要满足上述的需求,需要通过设置pl
2013-04-16 10:31:24
840
就地逆置算法
2012-11-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人