<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[nirvana_newbie的专栏]]></title><description><![CDATA[要想得到就一定要付出，不要把光阴埋葬，乘着风追落到有永恒的地方]]></description><link>https://blog.youkuaiyun.com/nirvana_newbie</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; nirvana_newbie]]></copyright><item><title><![CDATA[类模板的.h和.cpp文件分离]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/9365225</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/9365225</guid><author>nirvana_newbie</author><pubDate>Thu, 18 Jul 2013 11:27:17 +0800</pubDate><description><![CDATA[template
class Abc
{
public:
	T a;
public:
	void setvv(T b);
	T getvv();
};


#include "b.h"
template
void Abc::setvv(T b)
{
	a = b;
}

template
T Abc::getvv()
{
	return a;
}
#include "b.cpp"

#inc]]></description><category></category></item><item><title><![CDATA[华为专家面试题分享]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/9136061</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/9136061</guid><author>nirvana_newbie</author><pubDate>Thu, 20 Jun 2013 12:50:37 +0800</pubDate><description><![CDATA[好久不写博客了，这段时间在研究COM。正好这段时间，公司的几位同事应聘华为专家的岗位，旁听了电话面试，获取了一些面试题，与大家分享。
1.新开一个进程，监听其他进程openFile()操作的次数。
2.TCP/IP协议如何保证数据传输不丢失。
3.Http协议如何实现断点续传。
4.CreateFile()与strcpy()的区别。
5.32位系统能获得的最大内存，以及最大的用户使用内存]]></description><category></category></item><item><title><![CDATA[一个表达式中出现多个自增自减运算符的求值问题]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8954137</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8954137</guid><author>nirvana_newbie</author><pubDate>Tue, 21 May 2013 10:56:37 +0800</pubDate><description><![CDATA[昨天想进一个群，被群主拒绝，理由是一道自增运算符的题目。虽然自己猜出的答案和编译结果一样，但是百度了一下，发现网上讲的有点模棱两可，于是在同事的指导下查看了汇编代码才解决了心头的疑惑。
首先先看一下三种运算表达式：

#include
using namespace std;
int main()
{
	int i=2;
	cout<<i++*i++*i++<<endl;
	int j=3;]]></description><category></category></item><item><title><![CDATA[基类派生类虚函数的默认形参问题]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8950273</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8950273</guid><author>nirvana_newbie</author><pubDate>Mon, 20 May 2013 14:20:35 +0800</pubDate><description><![CDATA[最近做了一份笔试题，发现一个有意思的题目，关于虚函数默认形参的。代码如下
#include
using 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)]]></description><category></category></item><item><title><![CDATA[线程池]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8936417</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8936417</guid><author>nirvana_newbie</author><pubDate>Thu, 16 May 2013 17:55:56 +0800</pubDate><description><![CDATA[多线程技术主要解决处理器单元内多个线程执行的问题，它可以显著减少处理器单元的闲置时间，增加处理器单元的吞吐能力。但如果对多线程应用不当，会增加对单个任务的处理时间。可以举一个简单的例子：
假设在一台服务器完成一项任务的时间为T
T1 创建线程的时间
T2 在线程中执行任务的时间，包括线程间同步所需时间
T3 线程销毁的时间 
显然T ＝ T1＋T2＋T3。注意这是一个极度简化的假设。]]></description><category></category></item><item><title><![CDATA[IPC哲学家就餐]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8930746</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8930746</guid><author>nirvana_newbie</author><pubDate>Wed, 15 May 2013 15:32:03 +0800</pubDate><description><![CDATA[哲学家就餐问题。这是由计算机科学家Dijkstra提出的经典死锁场景。
原版的故事里有五个哲学家(不过我们写的程序可以有N个哲学家)，这些哲学家们只做两件事－－思考和吃饭，他们思考的时候不需要任何共享资源，但是吃饭的时候就必须使用餐具，而餐桌上的餐具是有限的，原版的故事里，餐具是叉子，吃饭的时候要用两把叉子把面条从碗里捞出来。很显然把叉子换成筷子会更合理，所以：一个哲学家需要两根筷子才能吃饭。]]></description><category></category></item><item><title><![CDATA[【数据结构】中缀表达式转换后缀表达式]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8921458</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8921458</guid><author>nirvana_newbie</author><pubDate>Mon, 13 May 2013 17:06:35 +0800</pubDate><description><![CDATA[我们平时写的数学表达式都是中缀表达式，如：a+b*c+(d*e+f)*g
现在要用计算机来实现这样的表达式，可以转换成后缀表达式再进行运算。自己写了一段代码如下：
#include   
#include 
using namespace std;  
void midtotail(char *a)
{
	stack c;
	while (*a!='\0')
	{
		if(*a >= '0']]></description><category></category></item><item><title><![CDATA[C++Primer第十章TextQuery]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8904718</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8904718</guid><author>nirvana_newbie</author><pubDate>Thu, 09 May 2013 11:49:09 +0800</pubDate><description><![CDATA[昨天学习了容器和文件流操作，写了C++Primer书中的TextQuery类。
textquery.h

#ifndef TEXTQUERY_H
#define TEXTQUERY_H

#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;

class TextQuery
{
pu]]></description><category></category></item><item><title><![CDATA[C++ fstream读写文件]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8904228</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8904228</guid><author>nirvana_newbie</author><pubDate>Thu, 09 May 2013 10:42:35 +0800</pubDate><description><![CDATA[#include
#include
#include
#include
using namespace std;
void main()
{
	fstream f1;
	f1.open("d:\\me1.txt",fstream::in|fstream::out);           //打开文件用于写,若文件不存在就创建它
	if(!f1)return;                 //打]]></description><category></category></item><item><title><![CDATA[LINUX下获取CPU和内存使用率]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8895431</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8895431</guid><author>nirvana_newbie</author><pubDate>Tue, 07 May 2013 15:40:28 +0800</pubDate><description><![CDATA[linuxt提供了系统函数sysconf()用来读取CPU和内存信息，先来了解一下sysconf()函数吧。
头文件
#include
函数原型
long sysconf (int name);

说明


sysconf() 返回选项 (变量) 的当前值，这个值可配置的但也是受系统限制的。在成功完成的情况下，sysconf() 返回变量的当前值。该值受到的限制将少于编译时]]></description><category></category></item><item><title><![CDATA[LINUX下获取所有进程信息]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8894827</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8894827</guid><author>nirvana_newbie</author><pubDate>Tue, 07 May 2013 13:44:40 +0800</pubDate><description><![CDATA[参照：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]]></description><category></category></item><item><title><![CDATA[Linux下undefined reference to 'pthread_create'解决方法]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8879023</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8879023</guid><author>nirvana_newbie</author><pubDate>Fri, 03 May 2013 10:27:17 +0800</pubDate><description><![CDATA[接触了Linux系统编程中的线程编程模块，可gcc sample.c（习惯把书上的sample代码写进sample.c文件中）出现“undefined reference to ‘pthread_create’”，所有关于线程的函数都会有此错误，导致无法编译通过。

问题的原因：pthread不是Linux下的默认的库，也就是在链接的时候，无法找到phread库中哥函数的入口地址，于是链接会失]]></description><category></category></item><item><title><![CDATA[Linux下的TCP通信]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8874246</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8874246</guid><author>nirvana_newbie</author><pubDate>Thu, 02 May 2013 08:56:56 +0800</pubDate><description><![CDATA[Linux下的TCP通信
今天我们介绍如何编写Linux下的TCP程序，关于UDP程序我还没学。



服务器端的步骤如下：

1. socket：      建立一个socket

2. bind：          将这个socket绑定在某个文件上（AF_UNIX）或某个端口上（AF_INET），我们会分别介绍这两种。

3. listen：        开始监听]]></description><category></category></item><item><title><![CDATA[新手学LINUX下C++编程之路（二）]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8862248</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8862248</guid><author>nirvana_newbie</author><pubDate>Sun, 28 Apr 2013 10:22:13 +0800</pubDate><description><![CDATA[这篇文章主要是记录我在使用LINUX中常用到的一些指令：
yum install xxx    安装命令
useradd -u 0 -g 0 xxxx    新增一个管理员账户
passwd xxxx  
设置/更改当前用户密码
mkdir xxxx  
新建文件夹
rm -rf xxxx  
删除文件夹
touch xxxx  
创建文件
su - xxxx    切换用户]]></description><category></category></item><item><title><![CDATA[C++运算符优先级]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8859273</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8859273</guid><author>nirvana_newbie</author><pubDate>Sat, 27 Apr 2013 15:21:53 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[新手学LINUX下C++编程之路（一）]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8858930</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8858930</guid><author>nirvana_newbie</author><pubDate>Sat, 27 Apr 2013 14:35:00 +0800</pubDate><description><![CDATA[C++基础知识已经掌握的差不多了。看完了《C++Primer》、《深度构造C++对象模型》，以及看了电子书《高质量C++C编程指南》，还有许多C++面试题。昨天又刚买了《数据结构与算法分析》和《Effective C++》，等书到了再看。
    今天开始折腾LINUX啦，一个完全陌生的系统环境。把学习过程记录下来。


先安装虚拟机，我用的是VmwareWorkstation。LINUX]]></description><category></category></item><item><title><![CDATA[虚析构函数的学习心得]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8857905</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8857905</guid><author>nirvana_newbie</author><pubDate>Sat, 27 Apr 2013 12:01:45 +0800</pubDate><description><![CDATA[首先来看一段传统的代码：

#include 
using namespace std;
class A
{
public:
        A(){}
        virtual ~A(){cout<<"~A"<<endl;}   //第一处
};
class B:public A
{
public:
	B(){}
	virtual ~B(){cout<<"~B"<<endl;}   /]]></description><category></category></item><item><title><![CDATA[如何将多态与现实应用结合起来]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8854175</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8854175</guid><author>nirvana_newbie</author><pubDate>Fri, 26 Apr 2013 14:54:39 +0800</pubDate><description><![CDATA[最近在看C++基础，多态是C++面相对象的一个特征。书上讲的很详细，但我向来对文字不敏感，必须要在脑海里构建抽象模型才能深刻理解。否则就是纸上谈兵了。
    思考了一会儿，想出一个案例：我要出门了，肯定要选择一个交通工具，交通工具有汽车、自行车，我可以选择其一。
    于是，我把这个案例虚拟化。交通工具的出行虚拟成类Transport，汽车的出行虚拟成类Car，自行车的出行虚拟成类Bike]]></description><category></category></item><item><title><![CDATA[C++面试之基础知识集锦]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8845517</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8845517</guid><author>nirvana_newbie</author><pubDate>Wed, 24 Apr 2013 17:37:55 +0800</pubDate><description><![CDATA[1.static关键字作用总结 http://www.cnblogs.com/biyeymyhjob/archive/2012/07/19/2598815.html


2.指针数组与数组指针的区别 http://www.cnblogs.com/hongcha717/archive/2010/10/24/1859780.html


3.在C++ 程序中调用被C 编译器编译后的函数，为]]></description><category></category></item><item><title><![CDATA[windows下GTK+的安装与环境配置]]></title><link>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8838480</link><guid>https://blog.youkuaiyun.com/nirvana_newbie/article/details/8838480</guid><author>nirvana_newbie</author><pubDate>Tue, 23 Apr 2013 10:54:44 +0800</pubDate><description><![CDATA[从组长那得到两个安装包，gtk-dev-2.12.9-win32-2.exe以及Glade3-3.6.1.exe。安装过程如下：
1. 直接双击运行，安装过程按照默认即可。
2. 安装完之后，环境变量也已经默认配置好了。右键单击“我的电脑”–>“属性”–>“高级”–>“环境变量”–>“系统变量”，可以看到Path增加了“%GTK_BASEPATH%\bin”。如图：


3. 打开VC6]]></description><category></category></item></channel></rss>