c++语言
tupelo-shen
一只单纯的程序喵
展开
-
C++学习-引用作为函数参数
在我们的编程过程中,我们经常将引用用作函数参数, 使得函数中的变量名成为调用程序中的变量的别名.这种传递参数的方法成为按引用传递.但是在函数中使用引用,往往会改变被引用对象的值.所以引入const.将引用参数声明为常量数据的引用的理由有三个:(1) 使用const可以避免无意中修改数据的编程错误;(2) 使用const使函数能够处理const和非const实参,否则只能接收非c原创 2015-09-28 14:49:40 · 729 阅读 · 1 评论 -
C++学习-存储类关键字
存储类关键字1 说明存储类关键字是名称声明语法的decl-specifier-seq的一部分。和名称的作用域一起,控制着名称的两个独立属性,自动存储期和链接属性。原创 2017-10-25 14:03:45 · 7139 阅读 · 0 评论 -
C++学习-构造函数、析构函数与虚函数的关系
文章主要探讨两个问题:(1)构造函数和析构函数能否是虚函数?(2)构造函数能否调用虚函数?原创 2017-10-31 11:45:30 · 1162 阅读 · 0 评论 -
C++学习-内联函数
内联函数的理解原创 2017-09-15 13:44:27 · 356 阅读 · 0 评论 -
Windows 7+Sublime Text 3配置C/C++开发环境
1 系统环境(1)Windows 7旗舰版。(2)编译环境:msys2 和 mingw。关于msys2 和 mingw的安装配置说明,请参考我的另一篇文章《Windows 7下使用GNU工具编译C/C++程序的环境搭建》。(3)Sublime Text 3最新版本:Build3126。对于其安装,使用请自行百度或者google之,网上介绍非常多;也可参考其官网。原创 2017-05-02 23:15:23 · 5491 阅读 · 0 评论 -
深入理解 typedef 与 #define
无论是C,还是C++,我们经常发现 typedef 关键字的身影。typedef 与 #define 有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了。原创 2017-04-06 16:33:21 · 598 阅读 · 0 评论 -
C++学习-运算符重载
操作符重载概念同函数重载一样,算数操作符重载能够带给我们操作不同数据类型的方法,包括你自己定义的类。操作符重载实现方式我们日常最常用的就是加、减、乘、除,而它们的性质又有些相似。所以,它们的运算符实现方式也有些相似原创 2017-04-14 08:52:01 · 371 阅读 · 0 评论 -
C++-程序设计实现
当我们有一个新的idea或者拿到用户需求的时候,常常会对怎样将其转化为代码而感到困惑。到底程序要解决哪些问题?模拟那些场景?在本文中,我们一起探讨一些这个问题。俗话说,未雨绸缪,而事半功倍。是的,在编程之前,我们必须充分地设计我们的程序。因为,程序的架构往往直接决定了程序的质量。再说,好的前期规划,也可以节省你的时间,还可以减少你的挫折感(ps:每个程序员都有过编程到一半返工的事情吧?)。那么,我们原创 2017-04-01 16:24:47 · 580 阅读 · 0 评论 -
C++11-委托构造函数(新特性)
在C++98中,如果你想让两个构造函数完成相似的事情,可以写两个大段代码相同的构造函数,或者是另外定义一个init()函数,让两个构造函数都调用这个init()函数。原创 2017-04-07 13:49:59 · 473 阅读 · 0 评论 -
有关C/C++中,表达式计算顺序的问题,以及表达式内部变量“副作用”问题
经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?” m = 1; n = m+++m++; 最近有位不相识的朋友发email给我,问为什么在某个C++系统里,下面表达式打印出两个4,而不是4和5: a = 4; cout << a++ << a; C++ 不是规定 << 操作左结合吗?是C++ 书上写错了,还是这个系统的实现有问题?...转载 2018-03-26 13:52:44 · 1020 阅读 · 0 评论 -
浅谈new-delete和malloc-free的用法和区别
简要阐述了C++分配内存的方法和C分配内存的方法的不同。被深入探讨了它们背后实现的机制。原创 2018-10-12 12:43:28 · 395 阅读 · 0 评论 -
C++单元测试框架-gtest-4-深入解析gtest
把测试宏展开,深入分析代码的行为原创 2019-02-27 21:18:28 · 1167 阅读 · 0 评论 -
C++单元测试框架-gtest-3-参数化
学习值参数化测试、类型测试、类型参数化测试以及对全局变量的测试原创 2019-02-27 21:15:06 · 3468 阅读 · 0 评论 -
C++单元测试框架-gtest-2-事件机制
事件机制原创 2019-02-27 21:07:48 · 735 阅读 · 0 评论 -
C++单元测试框架-gtest-1-断言
理解常用的编写测试用例所使用的TEST宏原创 2019-02-27 21:03:26 · 2100 阅读 · 0 评论 -
malloc使用的系统调用
对于理解进程是如何分配内存的非常有帮助。翻译 2018-11-28 15:43:41 · 4249 阅读 · 0 评论 -
栈缓存溢出
在软件程序中,如果对一个固定长度的目标数据结构进行写操作时,如果超出了其长度,就会写入程序所调用的栈中的相邻内存地址区域中。这就发生了栈溢出(stack buffer overflow)。这会导致被覆盖的内存区域中的数据损坏,从而导致程序崩溃或运行不正常。相比堆上的缓存溢出,栈缓存溢出更有可能破坏程序的执行。因为栈内包含函数的返回地址,这个地址是有效的函数指针,可以被修改执行。原创 2019-01-29 16:52:42 · 2234 阅读 · 0 评论 -
函数调用栈的过程
本文分析函数的调用过程中,栈的变化过程。原创 2019-01-31 19:27:42 · 739 阅读 · 0 评论 -
C++11新特性-基于范围的for循环
C++11新特性,基于范围的for循环的理解原创 2017-03-02 14:37:39 · 7009 阅读 · 0 评论 -
C++-使用模板解决问题
使用模板解决问题原创 2017-03-08 23:05:48 · 589 阅读 · 0 评论 -
关于C++ const全面总结
引文地址:http://blog.csdn.net/Eric_Jo/article/details/4138548 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const转载 2016-10-25 14:45:16 · 542 阅读 · 0 评论 -
深入理解C语言之extern
文章出处:https://my.oschina.net/lanzp/blog/188338 extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。 extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进行了声明:extern c转载 2016-10-24 16:48:07 · 796 阅读 · 0 评论 -
指针和数组的区别
C/C++程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。下面以字符串为例比较指针与数转载 2016-02-15 20:57:25 · 420 阅读 · 0 评论 -
多态公有继承
有时候,我们会需要同一个方法在派生类和基类中的行为是不同的。那么这种继承我们称为多态公有继承。实现这种机制,可以有两种方法:(1)在派生类中重新定义基类的方法;(2)使用虚方法;原创 2016-01-07 22:05:58 · 409 阅读 · 0 评论 -
基类和派生类的关系
1 基类和派生类之间的特殊关系假设有基类BaseClassA,它有方法MethodA()和私有方法MethodB();另有派生类InheritClassA继承于BaseClassA,它具有方法MethodC();(1)派生类对象可以调用基类的方法。前提是该方法不能是私有的方法。InheritClassA class1;class1.MethodA();原创 2016-01-07 21:54:58 · 1009 阅读 · 0 评论 -
《Effective C++》读书摘要
博客地址:http://www.cnblogs.com/fanzhidongyzby/archive/2012/11/18/2775603.html转载 2015-10-07 14:37:43 · 394 阅读 · 0 评论 -
C++学习-函数重载和默认参数
1(1) 函数重载,也被称为函数多态.函数重载的关键是函数的参数列表-也称为函数特征标(function signature).(2)在进行函数重载设计时,把类型引用和类型本身视为同一特征标.(3)匹配函数时,并不区分const 和非const变量.(4)是特征标,而不是函数类型使得可以对函数进行重载.原创 2015-09-30 16:41:57 · 924 阅读 · 0 评论 -
C++学习-文本输入输出
第十七章 文件输入输出本章内容(1) C++角度的输入和输出(2) iostream 类系列(3) 重定向(4) ostream 类方法(5) 格式化输出(6) istream 类方法(7) 流状态(8) 文件 i/o(9) 使用 ifstream 类从文件输入(10) 使用 ofstream 类输出到文件(11) 使用 fstream 类从文件输入原创 2015-09-30 11:05:29 · 522 阅读 · 0 评论 -
C++指针的理解
我们知道,在计算机内存中可以通过变量名称作为标识符访问变量。这种方法,程序不需要关心数据在内存的物理地址;无论何时涉及变量时,它简单地使用标示符。 对于C++程序,计算机的内存就像一系列内存单元的组合,这些单元的大小是1个字节,具有独立的地址。这些单字节内存单元被按照一定的方式组织起来,允许表述更大的数据单元,它们具有连续的地址。 基于此,使用每一个单元的独立地址可以很容易地访问内存。例如,地原创 2016-11-12 18:41:49 · 3868 阅读 · 0 评论 -
C++类理解(2)
类的深入理解原创 2016-12-11 01:24:48 · 514 阅读 · 0 评论 -
C++新特性-auto关键字
auto关键字的理解原创 2017-02-24 00:10:38 · 1622 阅读 · 1 评论 -
C++在嵌入式系统上的应用
C++在嵌入式系统上的应用转载 2017-02-21 17:30:41 · 1368 阅读 · 0 评论 -
VS2010对C++11的支持程度
VS2010对C++11支持程度原创 2017-02-09 17:13:45 · 11536 阅读 · 3 评论 -
C++强大的背后
在31年前(1979年),一名刚获得博士学位的研究员,为了开发一个软件项目发明了一门新编程语言,该研究员名为Bjarne Stroustrup,该门语言则命名为——C with classes,四年后改称为C++。C++是一门通用编程语言,支持多种编程范式,包括过程式、面向对象(object-oriented programming, OP)、泛型(generic programming, GP),转载 2017-02-17 18:41:07 · 1073 阅读 · 0 评论 -
C++类型转换
我们在编程的过程中经常遇到需要转换变量的类型,以期得到我们想要的数据类型。所以,要想成为一个好的程序员必须对类型变换有一个深入的理解。那么,就让我们一起看看C++中的类型转换都是怎么回事吧!原创 2017-01-01 00:52:35 · 529 阅读 · 0 评论 -
C++类的特殊成员-默认/拷贝/移动构造函数
详细讲解类的默认构造函数,拷贝/移动构造函数,以及拷贝赋值和移动赋值等操作。原创 2016-12-14 22:46:55 · 13176 阅读 · 8 评论 -
C++类理解(I)
通俗的讲,类就是数据结构的扩展概念:跟数据结构一样,它们包含数据成员,但是也包含函数作为成员。 对象就是类的实例化。类似于变量的使用,类就是type,对象就是变量。原创 2016-12-03 18:56:46 · 739 阅读 · 0 评论 -
C++之多态和虚函数
1、指向基类的指针 类继承的一个主要特点就是,指向派生类的指针和指向其基类的指针是类型兼容的。多态就是充分利用了这个简单,强大且通用的特点的艺术。 可以使用上面的特点,重写关于矩形和三角形的类。// 指向基类的指针#include <iostream>using namespace std;class Polygon { protected: int width, height;原创 2016-11-21 10:36:36 · 518 阅读 · 0 评论 -
C++单元测试框架-gtest-5-gmock
简单学习gmock的使用原创 2019-02-27 21:21:43 · 1283 阅读 · 0 评论