<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hi5000]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/hi5000</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; hi5000]]></copyright><item><title><![CDATA[使用dyncall动态调用函数]]></title><link>https://blog.csdn.net/hi5000/article/details/8092343</link><guid>https://blog.csdn.net/hi5000/article/details/8092343</guid><author>hi5000</author><pubDate>Sat, 20 Oct 2012 10:29:21 +0800</pubDate><description><![CDATA[#include 
#include "include/dyncall.h"

class test
{
public:
    test(int x):value(x){}
    void print(){ std::cout << value << std::endl; }

private:
    int value;
};

char* show(int x, double y, bo]]></description><category></category></item><item><title><![CDATA[vc下使用def文件导出动态库]]></title><link>https://blog.csdn.net/hi5000/article/details/7712891</link><guid>https://blog.csdn.net/hi5000/article/details/7712891</guid><author>hi5000</author><pubDate>Tue, 03 Jul 2012 18:19:47 +0800</pubDate><description><![CDATA[1、新建test工程，配置类型选择动态库（.dll）
2、加入工程代码
	int __stdcall add(int a, int b)
	{
		return a+b;
	}

	int __stdcall sub(int a, int b)
	{
		return a-b;
	}3、增加test.def文件，描述如下
	LIBRARY test
	EXPORTS 
	add @ 1
	s]]></description><category></category></item><item><title><![CDATA[文件夹递归遍历]]></title><link>https://blog.csdn.net/hi5000/article/details/7700433</link><guid>https://blog.csdn.net/hi5000/article/details/7700433</guid><author>hi5000</author><pubDate>Thu, 28 Jun 2012 19:05:15 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 

void find(const char* lpPath, std::vector& fileList)
{
    char szFind[MAX_PATH];
    char szFile[MAX_PATH];

    WIN32_FIND_DATA FindFileData;
    strcpy(szFi]]></description><category></category></item><item><title><![CDATA[虚继承下的多重继承内存布局]]></title><link>https://blog.csdn.net/hi5000/article/details/7687391</link><guid>https://blog.csdn.net/hi5000/article/details/7687391</guid><author>hi5000</author><pubDate>Sun, 24 Jun 2012 12:16:34 +0800</pubDate><description><![CDATA[#include 

class A
{
public:
    int a;
    A():a(10){ std::cout << "A constructor" << std::endl; }
    void f()
    {
        std::cout << "A::f" << std::endl;
    }
};

class B: virtual public A
{
p]]></description><category></category></item><item><title><![CDATA[多继承下的内存布局]]></title><link>https://blog.csdn.net/hi5000/article/details/7686526</link><guid>https://blog.csdn.net/hi5000/article/details/7686526</guid><author>hi5000</author><pubDate>Sat, 23 Jun 2012 19:25:19 +0800</pubDate><description><![CDATA[#include 

class A
{
public:
    int a;
    virtual void f()
    {
        std::cout << "A::f()" << std::endl;
    }
    virtual void g()
    {
        std::cout << "A::g()" << std::endl;
    }
    vi]]></description><category></category></item><item><title><![CDATA[多态虚函数表]]></title><link>https://blog.csdn.net/hi5000/article/details/7686401</link><guid>https://blog.csdn.net/hi5000/article/details/7686401</guid><author>hi5000</author><pubDate>Sat, 23 Jun 2012 17:36:15 +0800</pubDate><description><![CDATA[#include 

class A
{
public:
    virtual void f()
    {
        std::cout << "A::f()" << std::endl;
    }
    virtual void g()
    {
        std::cout << "A::g()" << std::endl;
    }
    virtual void]]></description><category></category></item><item><title><![CDATA[模板函数与类模板]]></title><link>https://blog.csdn.net/hi5000/article/details/7685023</link><guid>https://blog.csdn.net/hi5000/article/details/7685023</guid><author>hi5000</author><pubDate>Fri, 22 Jun 2012 19:02:06 +0800</pubDate><description><![CDATA[#include 
#include 

using namespace std;

int max_f(int a, int b)
{
    std::cout << "int max_f(int a, int b)" << std::endl;
    return a > b ? a : b;
}

template  
T max_f(T a, T b)
{
    std::cout]]></description><category></category></item><item><title><![CDATA[new和delete数组类型]]></title><link>https://blog.csdn.net/hi5000/article/details/7684026</link><guid>https://blog.csdn.net/hi5000/article/details/7684026</guid><author>hi5000</author><pubDate>Thu, 21 Jun 2012 20:53:01 +0800</pubDate><description><![CDATA[当new自定义类型数组对象的时候，会在返回地址的前面多申请4个字节，存放对象的个数，delete的时候根据对象个数循环调用析构函数，如果对象delete的时候没有析构函数可以使用，那么这个长度信息是不会存在的。
#include 

class test
{
public:
    test(){ std::cout << "constructor" << std::endl; }
    ~t]]></description><category></category></item><item><title><![CDATA[new的一个可能实现]]></title><link>https://blog.csdn.net/hi5000/article/details/7682994</link><guid>https://blog.csdn.net/hi5000/article/details/7682994</guid><author>hi5000</author><pubDate>Thu, 21 Jun 2012 14:49:10 +0800</pubDate><description><![CDATA[#include

using namespace std;

new_handler g_new_handler_f = NULL;

class A
{
public:
    A(){ std::cout << "constructor" << std::endl; /* throw int();*/}
    ~A(){ std::cout << "destructor" << std::]]></description><category></category></item><item><title><![CDATA[set_unexpected使用]]></title><link>https://blog.csdn.net/hi5000/article/details/7680932</link><guid>https://blog.csdn.net/hi5000/article/details/7680932</guid><author>hi5000</author><pubDate>Wed, 20 Jun 2012 20:12:18 +0800</pubDate><description><![CDATA[VS2005中的set_unexpected与标准C++不同，在exception头文件中set_unexpected函数定义为空，MSDN对set_unexpected的解释如下

The C++ Standard requires that unexpected is called when a function throws an exception that is not on its]]></description><category></category></item><item><title><![CDATA[适配器初识]]></title><link>https://blog.csdn.net/hi5000/article/details/7680703</link><guid>https://blog.csdn.net/hi5000/article/details/7680703</guid><author>hi5000</author><pubDate>Wed, 20 Jun 2012 18:05:54 +0800</pubDate><description><![CDATA[#include   
#include   
#include   
#include 

using namespace std;

//缺省版本
bool count_f(const int a)
{
    return a > 8;
}

//ptr_fun版本
bool greater_f(const int a, const int b)
{
    return a > b;
}]]></description><category></category></item><item><title><![CDATA[指定小数位数输出]]></title><link>https://blog.csdn.net/hi5000/article/details/7670325</link><guid>https://blog.csdn.net/hi5000/article/details/7670325</guid><author>hi5000</author><pubDate>Sun, 17 Jun 2012 09:49:50 +0800</pubDate><description><![CDATA[按有效位输出是 setprecision，按小数位数输出也是setprecision，但到底是谁取决于fixed。
cout 
cout 

测试代码：
#include 
#include 
using namespace std;

int main( void )
{
    const double value = 12.3456789;

    cout << value <]]></description><category></category></item><item><title><![CDATA[虚基类构造函数调用]]></title><link>https://blog.csdn.net/hi5000/article/details/7668733</link><guid>https://blog.csdn.net/hi5000/article/details/7668733</guid><author>hi5000</author><pubDate>Sat, 16 Jun 2012 12:43:49 +0800</pubDate><description><![CDATA[#include   

using namespace std;  

class A
{
public:
    A(int a):a_(a){ std::cout << "A constructor" << std::endl; }
private:
    int a_;
};
class B: virtual public A
{
public:
    B(int a, int b):]]></description><category></category></item><item><title><![CDATA[new和delete的使用]]></title><link>https://blog.csdn.net/hi5000/article/details/7667529</link><guid>https://blog.csdn.net/hi5000/article/details/7667529</guid><author>hi5000</author><pubDate>Fri, 15 Jun 2012 19:59:02 +0800</pubDate><description><![CDATA[1、操作符与表达式

#include 

using namespace std;

class A
{
public:
    A():a(100),b(200)
    {
        std::cout << "constructor " << std::endl;
    }
    ~A()
    {
        std::cout << "destructor " <<]]></description><category></category></item><item><title><![CDATA[默认数据类型的最大最小值]]></title><link>https://blog.csdn.net/hi5000/article/details/7666760</link><guid>https://blog.csdn.net/hi5000/article/details/7666760</guid><author>hi5000</author><pubDate>Fri, 15 Jun 2012 15:53:06 +0800</pubDate><description><![CDATA[#include 
#include  

using namespace std;

int main()
{
    std::cout << "int    max: \t" << INT_MAX  << std::endl;
    std::cout << "int    min: \t" << INT_MIN  << std::endl;
    std::cout << "long]]></description><category></category></item><item><title><![CDATA[不同进制输出]]></title><link>https://blog.csdn.net/hi5000/article/details/7666711</link><guid>https://blog.csdn.net/hi5000/article/details/7666711</guid><author>hi5000</author><pubDate>Fri, 15 Jun 2012 15:41:17 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 
#include 

using namespace std;

int main()
{
    bool b = true;
    std::cout << b << std::endl;              //1
    std::cout << boolalpha << b << std::endl;]]></description><category></category></item><item><title><![CDATA[流迭代器初识]]></title><link>https://blog.csdn.net/hi5000/article/details/7666063</link><guid>https://blog.csdn.net/hi5000/article/details/7666063</guid><author>hi5000</author><pubDate>Fri, 15 Jun 2012 12:47:28 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 
#include 

using namespace std;
 
int main()
{
    vector a;
    vector::iterator iter;
    for (int i=0; i<10; i++)
        a.push_back(i);

    ostream_iterat]]></description><category></category></item><item><title><![CDATA[c++小知识]]></title><link>https://blog.csdn.net/hi5000/article/details/7646097</link><guid>https://blog.csdn.net/hi5000/article/details/7646097</guid><author>hi5000</author><pubDate>Fri, 08 Jun 2012 17:04:52 +0800</pubDate><description><![CDATA[1、a++不能作为左值

    int a = 10;
    ++a = 1;//ok
    a++ = 1;//errora++是先使用a的值作运算，然后再使a的值增加1，如果允许执行a++左值的赋值运算，那么就要在赋值运算之后使a值再增加1，这样赋值运算就没意义了，a最终的结果不是赋值后的结果。
2、#error指示符
指令将使编译器显示一条错误信息，然后停止编译

3、AS]]></description><category></category></item><item><title><![CDATA[c++冷门关键字]]></title><link>https://blog.csdn.net/hi5000/article/details/7642435</link><guid>https://blog.csdn.net/hi5000/article/details/7642435</guid><author>hi5000</author><pubDate>Thu, 07 Jun 2012 16:36:37 +0800</pubDate><description><![CDATA[1、volatile 定义为volatile的变量可能会被意想不到的被改变，所以每次使用的时候优化器都会重新的去读取该变量的值，而不是使用保存在寄存器中的值
volatile 修饰函数的时候和const类似，如volatile定义的类对象只能调用volatile修饰的成员函数，volatile的成员函数和非volatile的同名同参成员函数会构成重载
2、mutable 可以在类的const成]]></description><category></category></item><item><title><![CDATA[inline关键字使用]]></title><link>https://blog.csdn.net/hi5000/article/details/7641779</link><guid>https://blog.csdn.net/hi5000/article/details/7641779</guid><author>hi5000</author><pubDate>Thu, 07 Jun 2012 14:29:09 +0800</pubDate><description><![CDATA[1、inline用在函数声明时，还是函数定义时？还是两边都加？ 
首先，内联函数声明和定义最好在同一个文件中，其它的情况没有实用上的意义。 
只要在同一个文件中，声明和定义至少其一加“inline”修饰即可。 

2、inline的函数可不可以同时是虚函数？ 
可以。 
因为inline只是给编译器的一种建议，编译器并不保证一定进行内联展开，也并不保证一定不进行内联展开。更详细地讲，假]]></description><category></category></item></channel></rss>