摘要: 函数typeid()返回值类型class type_info。其中type_info重载了操作符==, !=, =分别用来比较是否相等、不等、赋值。函数name()返回类型名称。class type_info {public: virtual ~type_info(); booloperator== (consttype_info& rhs) const; booloperator!= (consttype_info& rhs) const; boolbefore (consttype_info& rhs) const; constchar* name() const; 阅读全文
posted @ 2011-11-29 20:29 visayafan 阅读(7882) 评论(0) 推荐(1) 编辑
摘要: 下面的代码可以说明一切:默认情况下模板内的基本类型(int float ...)是不会自动初始化为0的(不像一般函数/类中),要想实现其自动初始化可以在模板函数中T x = T(); 在类中可以在构造函数列表中: x(), y()....#include <iostream>using namespace std;template <typename T>void f(const T&){ // T x = T(); //对比可知,此时输出为0,而下面输出为一个未知数 T x; cout<<x<<endl;}template <ty 阅读全文
posted @ 2011-11-29 20:04 visayafan 阅读(1462) 评论(0) 推荐(0) 编辑
摘要: 参考自《C++ Template》一书,解释得很详细,英语也比较简单应该可以看懂,如果看不懂得话可以找侯捷的翻译版本。 5.4 Template Template Parameters It can be useful to allow a template parameter itself to be a class template. Again, our stack class template can be used as an example. 模板参数列表里面可以存在模板,称之为模板参数模板。 To use a different internal container for st 阅读全文
posted @ 2011-11-29 19:37 visayafan 阅读(6015) 评论(0) 推荐(0) 编辑
摘要: 参考《Effective C++》条款42:Understand the two meaning of typenameTable of Contents1 模板参数列表中与class关键字可相互替换 2 嵌套从属名称(nested dependent names) 3 是嵌套从属名称但不用加typename的两种情况 1 模板参数列表中与class关键字可相互替换template<typename T>template<class T>是一样的2 嵌套从属名称(nested dependent names)假如template内出现的名称如果依赖于某个模板参数,则称其 阅读全文
posted @ 2011-11-29 18:53 visayafan 阅读(1463) 评论(0) 推荐(0) 编辑