自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

nirvana_newbie的专栏

要想得到就一定要付出,不要把光阴埋葬,乘着风追落到有永恒的地方

  • 博客(28)
  • 资源 (3)
  • 收藏
  • 关注

原创 类模板的.h和.cpp文件分离

templateclass Abc{public: T a;public: void setvv(T b); T getvv();};#include "b.h"templatevoid Abc::setvv(T b){ a = b;}templateT Abc::getvv(){ return a;}#include "b.cpp"#inc

2013-07-18 11:27:17 959

原创 华为专家面试题分享

好久不写博客了,这段时间在研究COM。正好这段时间,公司的几位同事应聘华为专家的岗位,旁听了电话面试,获取了一些面试题,与大家分享。1.新开一个进程,监听其他进程openFile()操作的次数。2.TCP/IP协议如何保证数据传输不丢失。3.Http协议如何实现断点续传。4.CreateFile()与strcpy()的区别。5.32位系统能获得的最大内存,以及最大的用户使用内存

2013-06-20 12:50:37 1192

原创 一个表达式中出现多个自增自减运算符的求值问题

昨天想进一个群,被群主拒绝,理由是一道自增运算符的题目。虽然自己猜出的答案和编译结果一样,但是百度了一下,发现网上讲的有点模棱两可,于是在同事的指导下查看了汇编代码才解决了心头的疑惑。首先先看一下三种运算表达式:#includeusing namespace std;int main(){ int i=2; cout<<i++*i++*i++<<endl; int j=3;

2013-05-21 10:56:37 1418 1

原创 基类派生类虚函数的默认形参问题

最近做了一份笔试题,发现一个有意思的题目,关于虚函数默认形参的。代码如下#includeusing namespace std;class A{public: virtual void f(int n=10) { cout<<"A::n="<<n<<endl; }};class B:public A{public: virtual void f(int n=20)

2013-05-20 14:20:35 1381

原创 线程池

多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。但如果对多线程应用不当,会增加对单个任务的处理时间。可以举一个简单的例子:假设在一台服务器完成一项任务的时间为TT1 创建线程的时间T2 在线程中执行任务的时间,包括线程间同步所需时间T3 线程销毁的时间 显然T = T1+T2+T3。注意这是一个极度简化的假设。

2013-05-16 17:55:56 505

原创 IPC哲学家就餐

哲学家就餐问题。这是由计算机科学家Dijkstra提出的经典死锁场景。原版的故事里有五个哲学家(不过我们写的程序可以有N个哲学家),这些哲学家们只做两件事--思考和吃饭,他们思考的时候不需要任何共享资源,但是吃饭的时候就必须使用餐具,而餐桌上的餐具是有限的,原版的故事里,餐具是叉子,吃饭的时候要用两把叉子把面条从碗里捞出来。很显然把叉子换成筷子会更合理,所以:一个哲学家需要两根筷子才能吃饭。

2013-05-15 15:32:03 1025 2

原创 【数据结构】中缀表达式转换后缀表达式

我们平时写的数学表达式都是中缀表达式,如:a+b*c+(d*e+f)*g现在要用计算机来实现这样的表达式,可以转换成后缀表达式再进行运算。自己写了一段代码如下:#include #include using namespace std; void midtotail(char *a){ stack c; while (*a!='\0') { if(*a >= '0'

2013-05-13 17:06:35 904

原创 C++Primer第十章TextQuery

昨天学习了容器和文件流操作,写了C++Primer书中的TextQuery类。textquery.h#ifndef TEXTQUERY_H#define TEXTQUERY_H#include #include #include #include #include #include using namespace std;class TextQuery{pu

2013-05-09 11:49:09 538

原创 C++ fstream读写文件

#include#include#include#includeusing namespace std;void main(){ fstream f1; f1.open("d:\\me1.txt",fstream::in|fstream::out); //打开文件用于写,若文件不存在就创建它 if(!f1)return; //打

2013-05-09 10:42:35 993

原创 LINUX下获取CPU和内存使用率

linuxt提供了系统函数sysconf()用来读取CPU和内存信息,先来了解一下sysconf()函数吧。头文件#include函数原型long sysconf (int name);说明sysconf() 返回选项 (变量) 的当前值,这个值可配置的但也是受系统限制的。在成功完成的情况下,sysconf() 返回变量的当前值。该值受到的限制将少于编译时

2013-05-07 15:40:28 1167

原创 LINUX下获取所有进程信息

参照:http://www.cnblogs.com/cxjchen/archive/2013/04/24/3040448.html先上代码:process.h/* * process.h * * Created on: 2013-5-7 * Author: jason */#ifndef PROCESS_H_#define PROCESS_H_#in

2013-05-07 13:44:40 2216

转载 Linux下undefined reference to 'pthread_create'解决方法

接触了Linux系统编程中的线程编程模块,可gcc sample.c(习惯把书上的sample代码写进sample.c文件中)出现“undefined reference to ‘pthread_create’”,所有关于线程的函数都会有此错误,导致无法编译通过。问题的原因:pthread不是Linux下的默认的库,也就是在链接的时候,无法找到phread库中哥函数的入口地址,于是链接会失

2013-05-03 10:27:17 1422

原创 Linux下的TCP通信

Linux下的TCP通信今天我们介绍如何编写Linux下的TCP程序,关于UDP程序我还没学。服务器端的步骤如下:1. socket:      建立一个socket2. bind:          将这个socket绑定在某个文件上(AF_UNIX)或某个端口上(AF_INET),我们会分别介绍这两种。3. listen:        开始监听

2013-05-02 08:56:56 666

原创 新手学LINUX下C++编程之路(二)

这篇文章主要是记录我在使用LINUX中常用到的一些指令:yum install xxx    安装命令useradd -u 0 -g 0 xxxx    新增一个管理员账户passwd xxxx  设置/更改当前用户密码mkdir xxxx  新建文件夹rm -rf xxxx  删除文件夹touch xxxx  创建文件su - xxxx    切换用户

2013-04-28 10:22:13 726

原创 C++运算符优先级

2013-04-27 15:21:53 735

原创 新手学LINUX下C++编程之路(一)

C++基础知识已经掌握的差不多了。看完了《C++Primer》、《深度构造C++对象模型》,以及看了电子书《高质量C++C编程指南》,还有许多C++面试题。昨天又刚买了《数据结构与算法分析》和《Effective C++》,等书到了再看。    今天开始折腾LINUX啦,一个完全陌生的系统环境。把学习过程记录下来。先安装虚拟机,我用的是VmwareWorkstation。LINUX

2013-04-27 14:35:00 1465 1

原创 虚析构函数的学习心得

首先来看一段传统的代码:#include using namespace std;class A{public: A(){} virtual ~A(){cout<<"~A"<<endl;} //第一处};class B:public A{public: B(){} virtual ~B(){cout<<"~B"<<endl;} /

2013-04-27 12:01:45 658

原创 如何将多态与现实应用结合起来

最近在看C++基础,多态是C++面相对象的一个特征。书上讲的很详细,但我向来对文字不敏感,必须要在脑海里构建抽象模型才能深刻理解。否则就是纸上谈兵了。    思考了一会儿,想出一个案例:我要出门了,肯定要选择一个交通工具,交通工具有汽车、自行车,我可以选择其一。    于是,我把这个案例虚拟化。交通工具的出行虚拟成类Transport,汽车的出行虚拟成类Car,自行车的出行虚拟成类Bike

2013-04-26 14:54:39 557

原创 C++面试之基础知识集锦

1.static关键字作用总结 http://www.cnblogs.com/biyeymyhjob/archive/2012/07/19/2598815.html2.指针数组与数组指针的区别 http://www.cnblogs.com/hongcha717/archive/2010/10/24/1859780.html3.在C++ 程序中调用被C 编译器编译后的函数,为

2013-04-24 17:37:55 553

原创 windows下GTK+的安装与环境配置

从组长那得到两个安装包,gtk-dev-2.12.9-win32-2.exe以及Glade3-3.6.1.exe。安装过程如下:1. 直接双击运行,安装过程按照默认即可。2. 安装完之后,环境变量也已经默认配置好了。右键单击“我的电脑”–>“属性”–>“高级”–>“环境变量”–>“系统变量”,可以看到Path增加了“%GTK_BASEPATH%\bin”。如图:3. 打开VC6

2013-04-23 10:54:44 1479

原创 C++支持多态的方法

C++以下列方法支持多态:1.经由一组隐式的转化操作。例如把一个derived class指针转化为一个指向其public base type的指针:Derived *pd = new Base();2.经由virtual function 机制:pd->foo();3.经由 dynamic_cast 和 typeid 运算符:if( Base *pb = dynamic_cast(p

2013-04-22 11:12:42 539

转载 构造函数为什么不能是虚函数

原文地址:http://www.cnblogs.com/lixiaohui-ambition/archive/2012/08/28/2660708.html原文作者列出了五条原因,但是我只能理解第一条红色划线部分,呵呵,其余的感觉有点雷同。等以后知识更广泛了再回头理解后面四条的原因吧。1. 从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个

2013-04-22 11:00:35 495

转载 构造和析构函数中绝不调用虚函数

原文地址:http://dev.yesky.com/441/2033941.shtml

2013-04-22 10:09:08 437

原创 memset与memcpy用法

memset() 函数原型:void *memset(void *s,int c,size_t n)作用:将从指针s指向的地址开始n个字节的内存赋值为c。memcpy()函数原型:void *memcpy(void*dest, const void *src, size_t n);作用:由src指向地址为起始地址的连续n个字节的数据复制到以destin指向地址为起始地址

2013-04-19 16:48:18 671

原创 二进制、八进制、十六进制输出变量

#include using namespace std;#include int main(){ unsigned int a = 2; int b = 5; bitset myset;//二进制输出 myset = (a); cout<<myset<<endl; myset = (b); cout<<myset<<endl; myset = (a-b); cout<<

2013-04-19 08:42:45 544

原创 友元函数与静态成员变量的实例

//a.h文件#ifndef A_H#define A_Hclass A{public: A():m_a(123){};//构造函数初始化 ~A(){}; void setval(int a){m_a = a;} friend void printval(class A *);//友元成员函数private: int m_a; static int m_b;//静态成员

2013-04-18 15:35:19 948

原创 C++指针学习心得(二)

读《高质量C++编程指南》的时候,看到一个有趣的题目:char *p = "abc";cout<<p[0]<<p[1]<<p[2]<<endl;//可以输出p[1] = "B";//不可以复制    不知道为什么不可以复制,于是写下了*p = "aBc";//可以    这样是可以的。认真分析原因,得知:*p的值是"abc";系统自动为常量"abc"分配了地址,所以指针p指向

2013-04-18 11:41:08 628

原创 C++指针学习心得(一)

最近换了新工作,从PHP转C++,毕业两年都没碰过C++了,现在突击复习,从《C++ Primer中文第四版》开始。    第一遍看完,对指针的认识是“存放的是对象的地址,通过解引用*来获取值”。自认为应该能掌握指针了,早上看了一篇文章,地址http://www.cnblogs.com/lazycoding/archive/2013/04/17/3025453.html,对指针又稀里糊涂毫不了

2013-04-18 11:07:02 894

GTK+程序设计中文版

GTK+程序设计,讲解非常好,PDF文字清晰,适合新手入门哦。

2013-04-23

获取CPU和操作系统信息

包含多种技术:注册表读取、WMI类库、内存读取、调用API函数。绝对具有参考性。

2013-04-17

空空如也

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

TA关注的人

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