<?xml version="1.0" encoding="gbk"?>
<rss version="2.0">
  <channel>
    <title>曲径通幽论坛 - FAQ</title>
    <link>http://www.groad.net/bbs/forum.php?mod=forumdisplay&amp;fid=246</link>
    <description>Latest 20 threads of FAQ</description>
    <copyright>Copyright(C) 曲径通幽论坛</copyright>
    <generator>Discuz! Board by Comsenz Inc.</generator>
    <lastBuildDate>Tue, 05 May 2026 10:29:49 +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=8246</link>
      <description><![CDATA[Q : 什么是容器？
A ：容器是存储其它对象的对象。被存储的对象必须是同一种类型，它们可以是 OOP 意义上的对象，也可以是内置类型值。存储在容器中的数据为容器所有，这意味着，当容器过期时，存储在容器中的数据也将过期（如果数据是指针的话，则它指向的数据并不一 ...]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Wed, 15 Jan 2014 07:53:29 +0000</pubDate>
    </item>
    <item>
      <title>[迭代器]什么是超过结尾(past-the-end)？</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8242</link>
      <description><![CDATA[Q ： 什么是超过结尾(past-the-end)？
A ：“超过结尾” 是一种迭代器，指向容器最后一个元素后面的那个元素。这与 C 风格字符串最后一个字符后面的空字符类似，只是空字符是一个值，而“超过结尾”则是一个指向元素的指针。end() 成员函数标识超过结尾的位置。比如我 ...]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Mon, 13 Jan 2014 08:27:54 +0000</pubDate>
    </item>
    <item>
      <title>在 C++ 中，结构体和类有区别吗？</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8239</link>
      <description><![CDATA[Q ： 在 C++ 中，结构体和类有区别吗？
A : 在 C++ 中，结构体是由关键字 struct 来定义，类由 class 来定义。默认情况下，struct 的成员和基类默认都是公有的(public)；而 class 的成员和基类默认都是私有的。这是 C++ 中结构体(struct)与类(class)仅有的区别。]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Fri, 10 Jan 2014 16:39:44 +0000</pubDate>
    </item>
    <item>
      <title>什么是 static_assert ？</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8238</link>
      <description><![CDATA[Q : 什么是 static_assert ？
A ：static_assert 称为静态断言，仅为 Visual C++ 支持，它用于编译时测试软件断言，其语法为：其中，constant-expression 是可以转换为布尔值的整型表达式。如果该计算式为 0 （错误），程序生成失败并显示错误。如果表达式非零，static ...]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Fri, 10 Jan 2014 13:26:04 +0000</pubDate>
    </item>
    <item>
      <title>unique_ptr 为什么优于 auto_ptr ？</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8237</link>
      <description><![CDATA[Q：unique_ptr 为什么优于 auto_ptr ？
A ：在《auto_ptr 的所有权概念》里已经简单的提到过 unique_ptr 要比 auto_ptr 要来得严格，因为编译阶段提出错误总比在运行时程序崩溃要来得好。因此，unique_ptr 要比 auto_ptr 更安全。


对于《auto_ptr 的所有权概念》 ...]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Fri, 10 Jan 2014 04:15:07 +0000</pubDate>
    </item>
    <item>
      <title>什么时候才能用 auto_ptr, shared_ptr 和 unique_ptr ?</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8232</link>
      <description><![CDATA[Q : 什么时候才能用 auto_ptr, shared_ptr 和 unique_ptr ?
A : 只有使用 new 分配内存时，才能使用 auto_ptr 和 shared_ptr 。在使用 new[] 分配内存时，不能使用它们。不使用 new 分配内存时，不能使用 auto_ptr 或 shared_ptr ；不使用 new 或 new[] 分配内存时，不 ...]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Wed, 08 Jan 2014 06:46:16 +0000</pubDate>
    </item>
    <item>
      <title>怎么处理重新引发的异常</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8222</link>
      <description><![CDATA[Q : 怎么处理重新引发的异常？

A ： 如果在一个 catch 异常处理块中，再单独执行一条 throw 语句，那么将重新引发一个异常。一般而言，重新引发的异常将由下一个捕获这种异常的 try-match 块组合进行处理，如果没有找到这样的处理程序，默认情况下程序将异常终止。
 ...]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Sun, 29 Dec 2013 14:48:13 +0000</pubDate>
    </item>
    <item>
      <title>嵌套类，结构和枚举的作用域特征是怎样的？</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8216</link>
      <description><![CDATA[A ： 嵌套类，结构和枚举的作用域特征是怎样的？

Q ：嵌套类，结构体以及枚举，都有同样的作用域特征，如下表所示：]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Thu, 26 Dec 2013 15:28:30 +0000</pubDate>
    </item>
    <item>
      <title>编译器如何选择合适的函数版本？</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8207</link>
      <description><![CDATA[Q：当有多种匹配时，编译器如何选择合适的函数版本？

A：对于函数重载、函数模板 和 函数模板重载，我们会看到一个实参可以匹配多个函数，那么编译器将选择哪一个匹配版本呢？编译器分析的这个过程称为重载解析(overloading resolution)，这个过程大致分为下面几个步 ...]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Mon, 23 Dec 2013 01:55:42 +0000</pubDate>
    </item>
    <item>
      <title>什么是非类型参数或表达式参数？</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8199</link>
      <description><![CDATA[Q ： 什么是非类型参数或表达式参数？

A ：在声明一个类模板时，如有下面的形式：其中，关键字 class 指出 T 为参数类型，int 指出 n 的类型为 int 。这种参数（指定特殊的类型而不是用作范型名）称为非类型(non-type)或表达式(expression)参数。

表达式参数有一 ...]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Mon, 16 Dec 2013 12:06:50 +0000</pubDate>
    </item>
    <item>
      <title>虚基类和非虚基类混合使用是情况是怎么样的？</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8194</link>
      <description><![CDATA[Q ：虚基类和非虚基类混合使用是情况是怎么样的？

A ：通常，如果基类是虚基类，派生类将包含基类的一个子对象；如果基类不是虚基类，派生类将包含多个子对象。当虚基类和非虚基类混合时，情况是怎么样的呢？

假设类 B 作为 类C 和 类D 的虚基类，同时也被用作 类 ...]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Sat, 14 Dec 2013 06:55:50 +0000</pubDate>
    </item>
    <item>
      <title>关于虚基类的几点疑问</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8192</link>
      <description><![CDATA[Q : 为什么要用“虚”基类？

A ：为什么要使用属于“虚”呢？实际上，虚函数和虚基类之间不存在明显的联系。C++ 用户强烈反对引入新的关键字，因为这给他们带来很大的压力。例如，如果新关键字与重要程序中的重要函数或变量名称相同，这就会非常麻烦。因此，C++ 对“ ...]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Fri, 13 Dec 2013 14:12:31 +0000</pubDate>
    </item>
    <item>
      <title>保护派生或私有派生时如何让基类方法在类外可用？</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8189</link>
      <description><![CDATA[Q ： 保护派生或私有派生时如何让基类方法在类外可用？

A： 使用保护派生或私有派生时，基类的公有成员将成为保护成员或私有成员。那么如何让基类的方法在派生类外可用呢？有两种方法。

方法一：定义一个使用该基类方法的派生类方法

假设 Student 类是 valarra ...]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Fri, 13 Dec 2013 05:30:13 +0000</pubDate>
    </item>
    <item>
      <title>使用包含还是私有继承？</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8188</link>
      <description><![CDATA[Q ：使用包含还是私有继承？

A ：包含 和 私有继承都可以建立 has-a 关系。大多数 C++ 程序员倾向于使用“包含”。原因是，“包含” 关系易于理解。在“包含”中，类声明里包含了显示命名对象，代码可以通过名称引用这些对象；而使用“私有继承”，使得关系变得很抽 ...]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Fri, 13 Dec 2013 03:10:38 +0000</pubDate>
    </item>
    <item>
      <title>基类的指针/引用可以使用派生类的方法吗？</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8186</link>
      <description><![CDATA[Q : 基类的指针/引用可以使用派生类的方法吗？

A : 将一个派生类的地址赋值给基类的指针时，这种情况是允许的，这种行为称为向上强制转换。那么这时，基类的指针可以调用基类中的方法，但是不能调用派生类中的方法，即使基类和派生类中的两个方法同名。但对于虚函数 ...]]></description>
      <category>FAQ</category>
      <author>beyes</author>
      <pubDate>Thu, 12 Dec 2013 15:20:10 +0000</pubDate>
    </item>
    <item>
      <title>只有一个参数的构造函数是如何隐式转换的？</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8176</link>
      <description><![CDATA[Q : 只有一个参数的构造函数是如何隐式转换的？

A : 只含有一个参数的构造函数，默认定义了一个隐式转换。比如下面的代码：

[mw_shl_code=cpp,true]#include \&quot;stdafx.h\&quot;
#include 
using namespace std;
 
 
class myclass {
    int a;
public:
    mycl ...]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Sat, 07 Dec 2013 03:25:35 +0000</pubDate>
    </item>
    <item>
      <title>为什么需要友元？</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8163</link>
      <description><![CDATA[一般情况下，访问类的私有部分，唯一的访问途径是通过共有类方法。如果只是这样，那么限制就太为严格，以致于不适合特定的编程问题，这时就产生了另外一种形式的访问权限：友元。友元有 3 种：友员函数，友元类，友元成员函数。
那我们在什么时候会用到友元呢？常见的 ...]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Mon, 25 Nov 2013 06:17:42 +0000</pubDate>
    </item>
    <item>
      <title>算术表示法和函数表示法</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8161</link>
      <description><![CDATA[算术表示法和函数表示法是运算符重载里的两个说法。

在重载加法运算符时(operator +())：

使用函数表示法：


使用运算符表示法：


这两种方法都调用 operator+() 方法。在运算符表示法中，运算符左侧的对象（这里为 coding）是调用对象，运算符右边的对象 ...]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Sat, 23 Nov 2013 00:47:17 +0000</pubDate>
    </item>
    <item>
      <title>什么是返回类型协变？</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8145</link>
      <description><![CDATA[Q: 什么是返回类型协变？

A: 一般情况下，重新定义继承的方法，应确保与原来的原型完全相同。但如果返回类型是基类引用或指针，则可以修改为指向派生类的引用或指针，这种特性被称为返回类型协变( covariance of return type )，因为允许返回类型岁类的类型变化而变 ...]]></description>
      <category>FAQ</category>
      <author>easy</author>
      <pubDate>Sat, 16 Nov 2013 08:37:47 +0000</pubDate>
    </item>
  </channel>
</rss>