随笔分类 -  C++

摘要:对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a=88; int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 <iostream> using namespace std; class CExample { p 阅读全文
posted @ 2018-03-17 23:34 白菜菜白 阅读(238) 评论(0) 推荐(0)
摘要:1.win7 64位下安装 1)下载Understand.4.0.908.x64.rar。 2)解压之,直接运行里面的Understand-4.0.908-Windows-64bit.exe。 3)选择如下 之后,点击“Add Eval or SDL (RegCode)”,如下图: 4)出现如下界面 阅读全文
posted @ 2018-03-14 10:51 白菜菜白 阅读(6454) 评论(0) 推荐(0)
摘要:F1 查看帮助F2 跳转到函数定义(和Ctrl+鼠标左键一样的效果)Shift+F2 声明和定义之间切换F4 头文件和源文件之间切换Ctrl+1 欢迎模式Ctrl+2 编辑模式Ctrl+3 调试模式Ctrl+4 项目设置模式Ctrl+5 帮助模式 Ctrl+6 输出模式Alt+0 显示或者隐藏侧边条 阅读全文
posted @ 2018-03-12 11:12 白菜菜白 阅读(197) 评论(0) 推荐(0)
摘要:先考虑一个简单的例子:假设有一个vector<string>,你的任务是统计长度小于5的string的个数,如果使用count_if函数的话,你的代码可能长成这样: 其中count_if函数的第三个参数是一个函数指针,返回一个bool类型的值。一般的,如果需要将特定的阈值长度也传入的话,我们可能将函 阅读全文
posted @ 2018-03-09 22:50 白菜菜白 阅读(771) 评论(0) 推荐(0)
摘要:1、文件命名规则 好的文件名命名可以很清晰的看出这个文件将要承载的内容,Google给出的规则为:文件名要全部小写, 可以包含下划线 (_) 或连字符 (-). 按项目约定来, 例如:cmd_save_player_info 2、类命名规则 类型名称的每个单词首字母均大写, 不包含下划线: 例如:M 阅读全文
posted @ 2018-02-03 14:56 白菜菜白 阅读(1271) 评论(0) 推荐(0)
摘要:什么是UML类图? 类图显示了一组类、接口、协作以及他们之间的关系。在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构建这些类从而实现系统。类加上他们之间的关系就构成了类图,类图中还可以包含接口、包等元素,也可以包括对象、链等实例。 类与类之间的关系 类与类之间的关系可以根据关系的强度依 阅读全文
posted @ 2018-01-20 13:45 白菜菜白 阅读(457) 评论(0) 推荐(0)
摘要:&&和||:逻辑运算符 &和|:按位运算符 &&是且的意思,a&&b 两者都为真才为真. ||是或的意思,a||b 两者有一为真即真. &,|是位运算符.即对位进行运算, 如00000011 & 00000001=00000001 00000011 | 00000001=00000011 对于(&& 阅读全文
posted @ 2017-12-31 22:37 白菜菜白 阅读(898) 评论(0) 推荐(0)
摘要:1. 简介 assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行。 原型定义: assert的作用是先计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序 阅读全文
posted @ 2017-11-10 20:23 白菜菜白 阅读(207543) 评论(2) 推荐(10)
摘要:参考: http://www.man7.org/linux/man-pages/man3/drand48.3.html drand48 返回服从均匀分布的·[0.0, 1.0) 之间的 double 型随机数。 阅读全文
posted @ 2017-11-10 20:01 白菜菜白 阅读(8843) 评论(0) 推荐(1)
摘要:一 函数指针介绍 函数指针指向某种特定类型,函数的类型由其参数及返回类型共同决定,与函数名无关。举例如下: int add(int nLeft,int nRight);//函数定义 该函数类型为int(int,int),要想声明一个指向该类函数的指针,只需用指针替换函数名即可: int (*pf)( 阅读全文
posted @ 2017-11-08 21:16 白菜菜白 阅读(83764) 评论(5) 推荐(17)
摘要:1 pair的应用 pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second 因为是 阅读全文
posted @ 2017-11-01 22:56 白菜菜白 阅读(103370) 评论(2) 推荐(4)
摘要:const rational operator*(const rational& lhs, const rational& rhs); 很多程序员第一眼看到它会纳闷:为什么operator*的返回结果是一个const对象?因为如果不是这样,用户就可以做下面这样的坏事: rational a, b, 阅读全文
posted @ 2017-10-29 11:35 白菜菜白 阅读(2932) 评论(0) 推荐(0)
摘要:待整理 阅读全文
posted @ 2017-10-29 00:22 白菜菜白 阅读(139) 评论(0) 推荐(0)
摘要:C++11之前,一直没有继承控制关键字。禁用一个类的进一步衍生是可能的但也很棘手。为避免用户在派生类中重载一个虚函数,你不得不向后考虑。 C++ 11添加了两个继承控制关键字:override和final。override确保在派生类中声明的重载函数跟基类的虚函数有相同的签名。final阻止类的进一 阅读全文
posted @ 2017-10-28 17:09 白菜菜白 阅读(430) 评论(1) 推荐(1)
摘要:为什么使用虚函数?什么是虚函数?虚函数是为了解决什么问题? 面向对象的三大特征: 封装 多态 继承 什么是多态? 相同对象收到不同消息或不同对象收到相同消息时产生的不同的动作。 静态多态 vs 动态多态 [-:>静态多态也叫做早绑定 如上面的代码,他们函数名相同,参数个数不同,一看就是互为重载的两个 阅读全文
posted @ 2017-10-28 17:01 白菜菜白 阅读(509) 评论(0) 推荐(0)
摘要:C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。 1.面向过程设计中的static1.1静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。 阅读全文
posted @ 2017-10-28 10:07 白菜菜白 阅读(250) 评论(0) 推荐(0)
摘要:一、一般用法 我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起. 阅读全文
posted @ 2017-10-27 15:39 白菜菜白 阅读(1208) 评论(0) 推荐(0)
摘要:C++ 阅读全文
posted @ 2017-10-26 15:44 白菜菜白 阅读(199) 评论(0) 推荐(0)
摘要:原文转自:http://www.cnblogs.com/ggjucheng/archive/2011/12/27/2303238.html 引言 typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typ 阅读全文
posted @ 2017-10-15 15:31 白菜菜白 阅读(17821) 评论(0) 推荐(0)
摘要:一. extern "C" 包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的;其次,被它修饰的目标是“C”的。让我们来详细解读这两重含义。 (1) 被extern "C"限定的函数或变量是extern类型的; extern是C/C++语言中表明函数和全局变量作用范围(可见性) 阅读全文
posted @ 2017-10-12 21:43 白菜菜白 阅读(211) 评论(0) 推荐(0)