自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Linux下 MySQL常用命令

记录一下MySQL常用命令一、用户相关1、新建用户1)、首先,登录root账号-u 用户名 -p密码./mysql -uroot -proot2)、创建新用户mysql> insert into mysql.user(Host,User,Password) values("localhost","username",password("pwd"));3)、刷

2015-04-02 18:13:02 448

原创 Google C++ Test 入门教程

1. 基础概念a. Assertions(断言)    断言分为fatal assertion和nonfatal assertion        fatal assertion当发生失败时,则直接从当前函数的失败的语句终止退出。        nonfatal assertion当发生失败时,则继续执行函数剩下的语句,不直接终止退出。    fatal asserti

2014-04-25 18:58:31 5072

原创 Linux下文件夹权限

用最高权限打开一个文件夹后,你就可以自由的使用最高权限编辑该文件夹中的所有内容。所以如果你打开了./,那么所有的文件夹都可以直接用图形化的方式编辑。命令行是这样的:sudo gnome-open /usr/share/fonts然后你就可以用管理员身份复制,粘贴文件了 。也可以右键更改文件的权限,只要改为程序可以访问就好了。

2013-02-22 18:09:22 480

转载 gcc命令生成静态库和动态库(网摘)

gcc命令生成静态库和动态库(网摘)我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。本文主要通过举例来说明在Linux中如何创建静态库和动态库,以及使用它们

2013-02-22 15:26:26 435

原创 C++子类继承基类时virtual关键字的作用

1、 基类的析构函数加virtual后,删除基类指针时,会先调用实际object的析构函数。2、子类在delete时,会先执行本身的析构函数再执行基类析构函数。3、在基类member function上加virtual关键字就是为了基类指针在指向派生类对象时,实际去调用派生类对应的member function(即多态)。

2013-02-21 15:49:31 1776

转载 学习和思考的实践方法

1) 养成习惯,经常主动回顾一段时间学到的东西(老生长谈了):这不仅有利于巩固长时记忆,而且一段时间之后的回顾你可能已经因为新的知识学习从而对原先的认识有了进一步的看法,通过回顾,可以整合新旧知识,得到新的启发。2) 创造回忆的机会:我知道第一条不顶用,没有人(好吧,很少有人)能够真正坚持执行。所以有了第二条——创造回忆既有知识的机会。具体来说就是通过:     2.1) 经常与别人讨

2013-01-01 14:52:46 632

转载 C++用户自定义转换(User-Defined Conversion)(摘自cnblogs)

C++用户自定义转换(User-Defined Conversion)在计算机语言中,类型的存在让我们可以更有针对性的进行数据和功能的处理,但是却又存在了类型转化的问题。C++如同其他计算机语言一样,也同样都这些问题。不过它相对于C而言多了引用类型(Reference);相对与C#来讲,又多了指针类型(Point)。这似乎让它的类型转化变得更加扑朔迷离。

2012-12-30 10:21:50 440

原创 返回[0,n)中的一个随机数

一般返回一个[0,n)的随机数,都会使用rand()%n。rand()函数返回区间为[0,RAND_MAX]中的一个数。RAND_MAX在中定义的。实际上rand()是一个伪随机函数。并且如果n的值很大,那么RAND_MAX就不会均匀地被n除尽,一些余数出现的概率将会比其他的更大。假定RAND_MAX是32767,且n等于20000。则rand()将会有两个不同的值能令rand()%n等于1000

2012-12-19 19:33:13 1257

转载 软件人员推荐书目(都是国外经典书籍!!!)

软件人员推荐书目(都是国外经典书籍!!!)软件人员推荐书目(一) 大师篇 一、 科学哲学和管理哲学【1】 "程序开发心理学"(The Psychology of Computer Programming : Silver Anniversary Edition) 【2】 "系统化思维导论"(An Introduction to Systems Thinking,

2012-12-10 21:51:49 1278 1

原创 使用补码的原因

现在我们知道计算机可以有三种编码方式表示一个数. 对于正数因为三种编码方式的结果都相同:[+1] = [00000001]原 = [00000001]反 = [00000001]补所以不需要过多解释. 但是对于负数:[-1] = [10000001]原 = [11111110]反 = [11111111]补可见原码, 反码和补码是完全不同的. 既然原

2012-11-30 09:22:27 623

原创 C++ const关键字 总结

1、const修饰变量const修饰普通变量只需掌握两点:(1)声明时必须进行初始化;(2)变量的值不能再改变。如代码:const int i; //error: uninitialized const 'i'const int j =0;j = 1; //error: assignment of read-only variable 'j'const修饰指针变量总结出来两种情况:(

2012-11-01 16:56:19 520

转载 四步轻松实现用Visio画UML类图(转自51)

用Visio画UML类图 对于画类图的工具很多,曾经学过用starUML画类图,但这个是用于Java语言的,对于用vs编程C++语言,个人感觉用visio会好一点。以下用以前面的俄罗斯方块游戏中的一个Block类为例来讲述。1.首先创建一个类图。接下来我们要做一下准备工作,因为我们这里用了PSDK中的POINT类型,在种数据类型在visio数据类型中找不到,所以我们先得追加这个数据

2012-10-28 17:10:04 2353

转载 c++内存的分布

一、一个经过编译的C/C++的程序占用的内存分成以下几个部分: 1、栈区(stack):由编译器自动分配和释放 ,存放函数的参数值、局部变量的值等,甚至函数的调用过程都是用栈来完成。其操作方式类似于数据结构中的栈。 2、堆区(heap) :一般由程序员手动申请以及释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式类似于链表。 3、全

2012-05-24 16:13:08 468

转载 C++ 类的静态成员详细讲解

在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即类名>::静态成员名>。   在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例

2012-05-22 21:30:28 431

转载 C++对象的内存分析(6)

前言    本节讨论构造函数,析构函数和虚析构函数。可能很多人都有这样的经历,面试时经常被问到:什么情况下要使用虚析构函数,为什么要使用虚析构函数?本文将试图对编译器的实现机制进行分析,来回答这个问题。 构造函数和析构函数的调用链    我们从例子来分析,首先我们来看下面这个继承链:    代码如下:class CBasic{public:

2012-05-14 08:35:23 2981

转载 C++对象的内存分析(5)

前言    前面4节我们已经完成了对4种C++对象布局的分析,本文试图覆盖更多的,常见的C++面向对象的概念。所以,最后2节将继续阐述2个主题:接口和抽象类以及构造函数、虚构函数和虚析构函数。 接口    这里我准备只主要阐述接口,而不谈一般的抽象类。因为在C++中,是没有“接口”这种类型的,所有的接口事实上是定义为纯抽象类。所谓纯抽象类,就是没有成员变量,没有实现了的函数

2012-05-14 08:34:07 483

转载 C++对象的内存分析(4)

前言    本章节是4个课题的最后一个,我们将讨论多重继承情况下,对象内存的布局。阅读本文,请思考下面的问题:当子类从多个基类继承,虚函数指针和成员变量将如何布局?编译器如何进行子类和基类之间类型转换?如果多个基类具有同样的虚函数,子类选择哪个实现来调用?如果子类重写该虚函数,那么它覆盖的是哪个基类的实现呢? 多重继承    我们将分析这样的例子:CFinal类继承自CBa

2012-05-14 08:33:23 453

转载 C++对象的内存分析(3)

前言    在第二节我们讲到从带虚函数的基类继承的子类,有一个虚函数指针在对象的最前端。但是,如果基类没有虚函数而子类有呢?阅读本节请思考下面的问题:没有虚函数的基类,会有虚函数指针和虚函数表吗?从该类继承的子类,内存中的元素如何布局。 Subject3:从不带虚函数的基类继承的子类    我们把上一节的CBasic类的2个虚函数删除,CFinal从CBasic类继承并增加新的

2012-05-14 08:32:27 431

转载 C++对象的内存分析(2)

前言    本章节讨论单继承情况下类对象的内存特性。阅读时请思考这几个问题:从子类到基类的类型转换,编译器做了什么?多态是怎么实现的?类的成员函数(包括虚函数)和普通函数有什么区别吗?Subject2:从带虚函数的基类继承的子类    类CFinal是我们要分析的目标,它从CBasic中继承而来,重写(override)了虚函数add;增加了一个新的虚函数;增加了一个成员变

2012-05-14 08:31:15 493

转载 C++对象的内存分析(1)

c++对象的内存分析.pptx 936kb:  介绍    虚函数表、虚指针、多态、重写(override)、虚析构、指针调整… 这些概念大家应该都不陌生,不过,除了了解概念和用法,你了解他们背后的实现的机制吗。 本文通过的C++类的对象内存进行分析,来讲解这些面向对象的特性是怎么实现的。本文的目的是为了更好的理解C++面向对象的特性的实质,而对于编译器实现的细节并不会

2012-05-14 08:30:01 565

转载 extern 关键字

解析“extern”1、 声明外部变量现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件://A.cppint i; void main(){}

2012-05-12 12:20:23 2450

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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