
混沌 IN C++
文章平均质量分 75
Jinhao
这个作者很懒,什么都没留下…
展开
-
混沌 IN C++::Template Metaprograms
难度: 文前说明:文中涉及到的观点并不是要求你去遵循它,而本文只相当于一篇“科普文章”。其中的关于template的语法在这里就不过多介绍了。例如,下文中提到的条件,都是要意识到是编译期常量。 C++ template 为我们提供了编译期计算的功能。编译器在处理template时,实际上相当于一个解释器的作用。充分利用template可以提高代码的运行速度,可以降低代码维护的复杂度,还可以为代原创 2004-06-29 05:28:00 · 5848 阅读 · 29 评论 -
混沌 IN C++::Generic Programming
难度: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* F原创 2008-10-03 14:29:00 · 1662 阅读 · 0 评论 -
混沌 IN C++::is-a的误解
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Font原创 2008-09-16 15:14:00 · 2196 阅读 · 4 评论 -
混沌 IN C++::转换函数
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Font原创 2008-09-08 14:48:00 · 1971 阅读 · 3 评论 -
混沌 IN C++::Argument Dependent Lookup
难度: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* F原创 2008-09-03 21:39:00 · 2914 阅读 · 4 评论 -
混沌 IN C++::Pointers-to-Member functions 解迷
难度:文前说明:下面涉及到的内容讨论了在GCC 3.2和MS Visual C++6/.NET中,指向成员函数的指针的实现。如果您将本文读完,别忘了文章最后的一点说明。以前有过将指向成员函数的指针转换成一个long而被编译器拒绝的经历吗?这里将说出真相。先来一段颇为“神奇”的代码struct Base1{ int i; Base1():i(1){} void原创 2004-07-23 02:25:00 · 3506 阅读 · 11 评论 -
混沌 IN C++::模板参数的奥秘
难度: 先来一道思考题 templatetypename T, T* p> struct A {}; 假若有个int类型的对象i,那么对于下面这段代码 Aint, &i> obj; 这个是合法的吗? 答: Aint, &i> obj; 可能合法 或 可能不合法。 什么东西可以当作模板的参数呢? 部分的内建类型和用户类型,和部分非类型的东西也可以当作模板参数。 非类型模板参数的一个要原创 2004-06-29 05:26:00 · 6304 阅读 · 14 评论 -
混沌 IN C++::动态资源管理陷阱
难度: 先阅读下面的代码然后来解答下面的那个问题 struct A {}; int main() { A *p = new A; p->~A(); free(p); } 问题:new/delete 和 malloc/free 有哪些区别? 答:new/delete 会在分配的内存上调用对象的构造函数和析构函数来初始化和销毁对象,而 malloc/free 却不能。更重要的原创 2004-06-29 05:25:00 · 6166 阅读 · 17 评论 -
混沌 In C++::是类型?还是函数调用?
难度:文前提醒:看这篇文章时须家长陪同并引导,以免走火入魔 先看看下面的代码? struct A{ A(){}}; templatetypename T>void func(T() ){} int main(){ A a( A() ); //(1), OK func( A() ); //(2), W原创 2004-06-29 05:22:00 · 20017 阅读 · 107 评论 -
混沌 IN C++::Exception思维
难度: 您的代码中有Exception吗?作为C++中最具争议的东西,就连在使用上也不是一件容易的事,您怎么看待异常呢? 如果想判断一个对象是否构造成功,我们可以用以下的三种方法 1、 struct A { A(int& i) { //其他代码 if(构造失败) i = 0; else i = 1; } }; int i; A原创 2004-07-11 21:20:00 · 3371 阅读 · 12 评论 -
混沌IN C++::所谓的隐晦
难度: 很多人抱怨C++有太多隐晦语法的问题。今天,来谈两个隐晦的语法问题。 一,关于Declarator。有时候,我们会故意制造一个便于理解的编译错误。templateclass static_error{public: template static_error(T){}};templateclass static_erro原创 2009-05-08 00:03:00 · 3235 阅读 · 10 评论