<?xml version="1.0" encoding="gbk"?>
<rss version="2.0">
  <channel>
    <title>曲径通幽论坛 - 『C ++』</title>
    <link>http://www.groad.net/bbs/forum.php?mod=forumdisplay&amp;fid=113</link>
    <description>Latest 20 threads of 『C ++』</description>
    <copyright>Copyright(C) 曲径通幽论坛</copyright>
    <generator>Discuz! Board by Comsenz Inc.</generator>
    <lastBuildDate>Tue, 23 Jun 2026 16:51:53 +0000</lastBuildDate>
    <ttl>60</ttl>
    <image>
      <url>http://www.groad.net/bbs/static/image/common/logo_88_31.gif</url>
      <title>曲径通幽论坛</title>
      <link>http://www.groad.net/bbs/</link>
    </image>
    <item>
      <title>固定时间与线性时间复杂度</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8245</link>
      <description><![CDATA[假设一个长盒子里一字排开装满了包裹，现在这个盒子只有一端是打开的。现在从打开的这端取出一个包裹，那么这是一个固定时间的任务；不管盒子里装有10个还是100个，对于只取出 1 个包裹来说，时间都一样。

现在仍假设盒子是一端开口，现在任务是取出没开口那端的的包 ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Wed, 15 Jan 2014 04:07:48 +0000</pubDate>
    </item>
    <item>
      <title>迭代器的类型</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8244</link>
      <description><![CDATA[STL 定义了 5 种迭代器，它们分别是输入迭代器、输出迭代器、正向迭代器和随机访问迭代器。

1. 输入迭代器
“输入”是从程序角度来说的，即来自容器的信息被视为输入。输入迭代器可被程序用来读取容器中的信息。也就是说，对输入迭代器解除引用，可以使程序读取容器 ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Tue, 14 Jan 2014 06:27:52 +0000</pubDate>
    </item>
    <item>
      <title>基于范围的 for 循环</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8243</link>
      <description><![CDATA[在 C++11 里，for 循环的形式还能是基于范围的，如下所示：实际上，该特性是为了 STL 而实际的。在这种 for 循环中，括号内的代码声明一个类型与容器存储的内容相同的变量，然后指出了容器的名称。接下来，循环体使用指定的变量依次访问容器中的每一个元素。

比如使 ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Mon, 13 Jan 2014 14:04:50 +0000</pubDate>
    </item>
    <item>
      <title>__is_empty</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8241</link>
      <description><![CDATA[Type Traits 中文意为“类型特征”，是 C++ 的扩展组件。如果编译器支持该扩展，那么编译器在编译时，可以指示一个类型的不同特征（比如是否为空类，是否为一个char 类型等等）。

实际上，类型特征是一种模板类型。下面以 __is_empty( type ) 这个模板为例，该组件测 ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Sun, 12 Jan 2014 14:56:42 +0000</pubDate>
    </item>
    <item>
      <title>auto_ptr 的所有权概念</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8235</link>
      <description><![CDATA[auto_ptr 是智能指针，它有一个(owenship)概念：对于特定的对象，只能有一个智能指针可拥有它。这样一来，只有拥有对象的智能指针的析构函数可以删除对象。赋值操作会转让所有权。unique_ptr 也有类似策略，但比 unique_ptr 更为严格些。

考虑下面这个不适合使用 aut ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Thu, 09 Jan 2014 14:56:13 +0000</pubDate>
    </item>
    <item>
      <title>智能指针</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8234</link>
      <description><![CDATA[智能指针是行为类似于普通指针的类对象，它通常用来帮助管理动态内存问题。比如说，我们在一个函数里，使用了 new 分配了一块内存，但忘记在函数返回时使用 delete 收回内存，从而导致了内存泄露。对于这种问题，尽管我们可以提醒自己要记得去收回内存，但总是难以避免 ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Thu, 09 Jan 2014 07:27:38 +0000</pubDate>
    </item>
    <item>
      <title>[RTTI]typeid 运算符和 type_info 结构</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8229</link>
      <description><![CDATA[typeid 运算符和 type_info 结构都是 RTTI支持的元素。

typeid 运算符能够确定两个对象是否为同种类型，与 sizeof 有些相似，可以接受两种参数：类名 和 结果为对象的表达式。

typeid 返回一个对 type_info 对象的引用，其中 type_info 是 typeinfo 头文件中定义 ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Mon, 06 Jan 2014 05:56:18 +0000</pubDate>
    </item>
    <item>
      <title>[RTTI]dynamic_cast 运算符</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8227</link>
      <description><![CDATA[dynamic_cast 是 RTTI (Runtime Type Identification，运行阶段类型识别)组件之一。如果可能的话，它将使用一个指向基类的指针来生成一个指向派生类的指针；否则，该运算符返回 0 --- 空指针。
注意： RTTI 只适用于包含虚函数的类。

dynamic_cast 它不能告诉你“指 ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Sun, 05 Jan 2014 10:29:35 +0000</pubDate>
    </item>
    <item>
      <title>异常类</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8226</link>
      <description><![CDATA[exception 头文件（以前为 exception.h 或 except.h）定义了 exception 类，C++ 可以把它作为其他异常类的基类。其中，有一个名为 what() 的虚拟成员函数，它返回一个字符串，该字符串的特征随实现而异，比如通过 VC++ 编译器可以看到该函数的定义：这是个虚方法，在 ex ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Thu, 02 Jan 2014 14:45:34 +0000</pubDate>
    </item>
    <item>
      <title>异常与栈解退(unwinding the stack)</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8223</link>
      <description><![CDATA[C/C++ 通常都是通过将信息放在栈中处理函数调用的。在程序调用一个函数时，同时会将函数的返回地址放到栈中。当被调用的函数执行完毕后，程序将使用该地址来确定从哪里继续执行。此外，程序还将被调函数的参数放到栈中，这些栈中的参数被视为自动变量。如果被调函数还调 ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Mon, 30 Dec 2013 03:50:49 +0000</pubDate>
    </item>
    <item>
      <title>将对象用作异常类型</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8221</link>
      <description><![CDATA[引发异常的函数不但可以传递整型，字符串等常用类型，还可以传递一个对象。传递对象的优点是：可以使用不同的异常类型来区分不同的函数在不同的情况下引发的异常。此外，对象可以携带信息，并可以根据这些信息来确定引发异常的原因；同时，catch 可以根据这些信息来决定 ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Sun, 29 Dec 2013 06:39:23 +0000</pubDate>
    </item>
    <item>
      <title>在模板中使用嵌套类</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8219</link>
      <description><![CDATA[下面的代码实例演示了在类模板中使用嵌套类。

该示例是一个单向链表结构。

queuetp.h
[[mw_shl_code=cpp,true]// queuetp.h -- queue template with a nested class
#ifndef QUEUETP_H_
#define QUEUETP_H_

template 
class QueueTP
{
private:
    enu ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Sat, 28 Dec 2013 10:54:14 +0000</pubDate>
    </item>
    <item>
      <title>嵌套类</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8218</link>
      <description><![CDATA[一个类可以在另一个类中声明，这个类就称为“嵌套类”(nested class)，它通过提供新的类型类作用域来避免名称混乱，而包含嵌套类的类称为“包含类”(enclosing class)。

包含类的成员函数可以创建和使用嵌套类的对象，而仅当声明位于公有部分，才能在包含类的外面使 ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Fri, 27 Dec 2013 09:55:33 +0000</pubDate>
    </item>
    <item>
      <title>模板别名</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8210</link>
      <description><![CDATA[可以使用 typedef 为模板具体化指定别名，比如：
[mw_shl_code=cpp,true]
typedef std::array arrd;
typedef std::array arri;
typedef std::array arrst;
arrd gallons;  // gallons 是 std::array 类型
arri days;     // days 是 std::array 类型
arrst month ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Tue, 24 Dec 2013 10:10:00 +0000</pubDate>
    </item>
    <item>
      <title>模板类与友元</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8209</link>
      <description><![CDATA[模板类声明也可有友元，分为 3 类：


[*]非模板友元。
[*]约束(bound)模板友元，即友元的类型取决于类被实例化时的类型。
[*]非约束(unbound)模板友元，即友元的所有具体化都是类的每一个具体化的友元。

 模板类的非模板友元函数 
在一个模板类中将一个常规函 ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Tue, 24 Dec 2013 04:21:16 +0000</pubDate>
    </item>
    <item>
      <title>[函数模板]实例化和具体化</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8204</link>
      <description><![CDATA[实例化与具体化是两个不同概念术语。

首先应该明确，在代码中包含函数模板本身并不会生成函数定义，它只是一个用于生成函数定义的方案。

编译器使用模板为特定类型生成函数定义时，得到的是模板实例(instantiation)。例如，有下面的模板定义：当函数调用 Swap(i,  ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Wed, 18 Dec 2013 06:10:35 +0000</pubDate>
    </item>
    <item>
      <title>[函数模板]显式具体化</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8202</link>
      <description><![CDATA[函数模板的具体化(explicit specialization)，简单的说就是可以提供一个具体化的函数定义，其中包含所需的代码。当编译器找到与函数调用匹配的具体定义时，将使用该定义，而不再寻找模板。

具体化机制随着 C++ 的演变而不断变化。下面介绍 C++ 标准定义的形式。

1 ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Tue, 17 Dec 2013 16:17:55 +0000</pubDate>
    </item>
    <item>
      <title>[类模板]将模板用作参数</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8201</link>
      <description><![CDATA[模板可以包含类型参数(如 typename T) 和 非类型参数(如 int n)。模板还可以包含本身就是模板的参数，这种新增的特性，用于实现 STL 。

看下面的代码：

stacktp.h
[mw_shl_code=cpp,true]// stacktp.h -- a stack template
#ifndef STACKTP_H_
#define STACKTP ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Tue, 17 Dec 2013 02:46:03 +0000</pubDate>
    </item>
    <item>
      <title>模板的具体化</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8200</link>
      <description><![CDATA[类模板与函数模板类似，可以有隐式实例化、显式实例化和显式具体化，这些统称为具体化(specialization)。

1. 隐式实例化(implicit instantiation)
隐式实例化，即声明一个或多个对象，并指出所需的类型，而编译器使用通用模板来生成具体的类定义：编译器在需要对象 ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Mon, 16 Dec 2013 16:11:32 +0000</pubDate>
    </item>
    <item>
      <title>[虚基类]名称的优先规则</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8197</link>
      <description><![CDATA[在使用非虚基类时，如果从不同的类那里继承了两个或多个同名成员（数据或方法），则在使用该成员名时，如果没有用类名进行限定，将导致二义性。如果使用的是虚基类，这样做不一定会导致二义性。在这种情况下，如果某个名称优先于其它所有名称，那么在使用它时，即便不使 ...]]></description>
      <category>『C ++』</category>
      <author>easy</author>
      <pubDate>Sun, 15 Dec 2013 07:32:12 +0000</pubDate>
    </item>
  </channel>
</rss>