<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dibi3773的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/dibi3773</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dibi3773]]></copyright><item><title><![CDATA[#define高级教程]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764891</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764891</guid><author>dibi3773</author><pubDate>Sun, 17 Jun 2012 11:09:00 +0800</pubDate><description><![CDATA[预处理器运算符：
#：实参两边加双引号，如#define(a) #a ,表示"a"
#@：实参两边加单引号
##：实参连接标记，如#define(a, b) a##b，表示ab

自制小示例：

#include &lt;iostream&gt;
using namespace std;

#define QUOTES(a) #a
#define TEXTLINK...]]></description><category></category></item><item><title><![CDATA[Ogre笔记（4）]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764892</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764892</guid><author>dibi3773</author><pubDate>Wed, 04 May 2011 16:30:00 +0800</pubDate><description><![CDATA[增加动画：


Ogre::Entity* _ent;    // 增加动画效果的实体的指针Ogre::AnimationState* _aniState; // 所使用动画状态的指针


_aniState = _ent-&gt;getAnimationState("Dance");    // 获取“Dance”动画状态_aniState-&gt;setEnabled(t...]]></description><category></category></item><item><title><![CDATA[Ogre笔记（3）]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764890</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764890</guid><author>dibi3773</author><pubDate>Tue, 03 May 2011 15:09:00 +0800</pubDate><description><![CDATA[FrameListener:


class Example25FrameListener : public Ogre::FrameListener　　// 帧监听{private:    Ogre::SceneNode* _node;public:    Example25FrameListener(Ogre::SceneNode* node)    {        _node...]]></description><category></category></item><item><title><![CDATA[Ogre笔记（2）]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764888</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764888</guid><author>dibi3773</author><pubDate>Thu, 28 Apr 2011 21:50:00 +0800</pubDate><description><![CDATA[创建平面：


Ogre::Plane plane(Vector3::UNIT_Y, -10);        // 通过法线创建一个平面Ogre::MeshManager::getSingleton().createPlane("plane",    ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, plane,    1500...]]></description><category></category></item><item><title><![CDATA[Ogre笔记（1）]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764889</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764889</guid><author>dibi3773</author><pubDate>Thu, 28 Apr 2011 17:08:00 +0800</pubDate><description><![CDATA[旋转：

Ogre::Entity* ent2 = mSceneMgr-&gt;createEntity("MyEntity2","Sinbad.mesh");Ogre::SceneNode* node2 = mSceneMgr-&gt;createSceneNode("Node2");node-&gt;addChild(node2);node2-&gt;setPosition(10...]]></description><category></category></item><item><title><![CDATA[Effective C++:条款08:别让异常逃离析构函数 (Prevent exceptions from leaving destructors.)]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764887</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764887</guid><author>dibi3773</author><pubDate>Mon, 28 Mar 2011 22:56:00 +0800</pubDate><description><![CDATA[析构函数绝对不要吐出异常。如果一个被析构函数调用的函数可能抛出异常，析构函数应该捕捉任何异常，然后吞下它们（不传播）或结束程序。如果客户需要对某个操作函数运行期间抛出的异常做出反应，那么class应该提供一个普通函数（而非在析构函数中）执行该操作。

转载于:https://www.cnblogs.com/elite/archive/2011/03/28/1998220.html...]]></description><category></category></item><item><title><![CDATA[Effective C++:条款06:若不想使用编译器自动生成的函数，就该明确拒绝 (Explicitly disallow the use of complier-generated functio...]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764883</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764883</guid><author>dibi3773</author><pubDate>Tue, 22 Mar 2011 13:57:00 +0800</pubDate><description><![CDATA[为驳回编译器自动(暗自)提供的机能，可将相应的成员函数声明为private并且不予实现。使用像Uncopyable这样的base class也是一种做法。


class Uncopyable{protected:　　Uncopyable(){}　　~Uncopyable(){}private:　　Uncopyable(const Uncopyable&amp;);　　Uncopy...]]></description><category></category></item><item><title><![CDATA[Effective C++:条款05:了解C++默默编写并调用哪些函数 (Know what functions C++ silently writes and calls.)...]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764885</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764885</guid><author>dibi3773</author><pubDate>Mon, 21 Mar 2011 17:29:00 +0800</pubDate><description><![CDATA[编译器可以暗自为class创建default构造函数、copy构造函数、copy assignment操作符，以及析构函数。

转载于:https://www.cnblogs.com/elite/archive/2011/03/21/1990547.html...]]></description><category></category></item><item><title><![CDATA[Effective C++:条款04:确定对象被使用前已先被初始化 (Make sure that objects are initialized before they're used.)...]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764882</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764882</guid><author>dibi3773</author><pubDate>Sun, 20 Mar 2011 23:03:00 +0800</pubDate><description><![CDATA[为内置型对象进行手工初始化，因为C++不保证初始化它们。
构造函数最好使用成员初值列(member initialization list)，而不要在构造函数本体内使用赋值操作(assignment)。初值列列出的成员变量，其排列次序应该和它们在class中的声明次序相同。
为免除“跨编译单元之初始化次序”问题，请以local static对象替换non-local static对象...]]></description><category></category></item><item><title><![CDATA[Effective C++:条款03:尽可能使用const (Use const whenever possible.)]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764881</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764881</guid><author>dibi3773</author><pubDate>Sat, 19 Mar 2011 10:42:00 +0800</pubDate><description><![CDATA[将某些东西声明为const可帮助编译器侦测错误用法。const可被施加于任何作用域内的对象、函数参数、函数返回类型、成员函数本体。
编译器强制实施bitwise constness，但你编写程序时应该使用“概念上的常量性”(conceptual constness)。
当const和non-const成员函数有着实质等价的实现时，令non-const版本调用const版本可避免代码重...]]></description><category></category></item><item><title><![CDATA[Effective C++:条款02:尽量以const, enum, inline替换#define (Prefer consts, enums, and inline to #defines.)...]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764880</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764880</guid><author>dibi3773</author><pubDate>Sat, 19 Mar 2011 10:38:00 +0800</pubDate><description><![CDATA[对于单纯常量，最好以const对象或enums替换#defines。
对于形似函数的宏(macros)，最好改用inline函数替换#defines。

转载于:https://www.cnblogs.com/elite/archive/2011/03/19/1988657.html...]]></description><category></category></item><item><title><![CDATA[Effective C++:条款01:视C++为一个语言联邦(View C++ as a federation of languages.)]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764879</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764879</guid><author>dibi3773</author><pubDate>Sat, 19 Mar 2011 10:35:00 +0800</pubDate><description><![CDATA[C++高效编程守则视状况而变化，取决于你使用C++的哪一部分。

转载于:https://www.cnblogs.com/elite/archive/2011/03/19/1988653.html]]></description><category></category></item><item><title><![CDATA[C++Primer读书笔记：第5章 表达式]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764878</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764878</guid><author>dibi3773</author><pubDate>Tue, 21 Dec 2010 17:07:00 +0800</pubDate><description><![CDATA[　　操作符的含义——该操作符执行什么操作以及操作结果的类型——取决于操作数的类型。

　　如果两个操作数为正，除法（/）和求模（%）操作的结果也是正数（或零）；如果两个操作数都是负数，除法操作的结果为正数（或零），而求模操作的结果则为负数（或零）；如果只有一个操作数为负数，这两种操作的结果取决于机器；求模结果的符号也取决于机器，而除法操作的值则是负数（或零）。　　

转载于:htt...]]></description><category></category></item><item><title><![CDATA[C++Primer读书笔记：第4章 数组和指针]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764877</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764877</guid><author>dibi3773</author><pubDate>Sun, 19 Dec 2010 14:35:00 +0800</pubDate><description><![CDATA[数组
　　数组定义中的类型名可以是内置数据类型或类类型；除引用之外，数组元素的类型还可以是任意的复合类型。没有所有元素都是引用的数组。

　　除非显式地提供元素初值，否则内置类型的局部数组的元素没有初始化。此时，除了给定元素之外，其他使用这些元素的操作没有定义。

不允许数组直接复制和赋值



　　int ia[] = {0, 1, 2};    // ok: ...]]></description><category></category></item><item><title><![CDATA[C++Primer读书笔记：第3章 标准库类型]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764875</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764875</guid><author>dibi3773</author><pubDate>Thu, 09 Dec 2010 23:33:00 +0800</pubDate><description><![CDATA[　　通常，头文件中应该只定义确定必要的东西。请养成这个习惯。
标准库string类型
　　几种初始化string对象的方式

　　string s1;　　　　　　// 默认构造函数，s1为空串　　string s2(s1);　　　 // 将s2初始化为s1的一个副本　　string s3("value"); // 将s3初始化为一个字符串字面值副本　　string s4(n, '...]]></description><category></category></item><item><title><![CDATA[C++Primer读书笔记：第2章 变量和基本类型]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764873</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764873</guid><author>dibi3773</author><pubDate>Thu, 09 Dec 2010 16:41:00 +0800</pubDate><description><![CDATA[　　和其他整型不同，char有三种不同的类型：普通char、unsigned char和signed char，虽然char有三种不同的类型，但只有两种表示方式。可以使用unsigned char或signed char表示char类型。使用哪种char表示方式由编译器而定。
　　C++中，把负值赋给unsigned对象是完全合法的，其结果是该负数对该类型的取值个数求模后的值。所以，如...]]></description><category></category></item><item><title><![CDATA[C++Primer读书笔记：第1章 快速入门]]></title><link>https://blog.youkuaiyun.com/dibi3773/article/details/101764871</link><guid>https://blog.youkuaiyun.com/dibi3773/article/details/101764871</guid><author>dibi3773</author><pubDate>Thu, 09 Dec 2010 13:46:00 +0800</pubDate><description><![CDATA[标准库定义了4个IO对象。
　　处理输入时使用命名为cin的istream类型对象，这个对象也称为标准输入。
　　处理输出时使用命名为cout的ostream类型对象，这个对象也称为标准输出。
　　标准库还定义了另外两个ostream对象，分别命名为cerr和clog。
　　　　cerr对象又叫作标准错误，通常用来输出警告和错误信息给程序的使用者。
　　　　clog对象用于产生...]]></description><category></category></item></channel></rss>