摘要:
难度: 文前说明:文中涉及到的观点并不是要求你去遵循它,而本文只相当于一篇“科普文章”。其中的关于template的语法在这里就不过多介绍了。例如,下文中提到的条件,都是要意识到是编译期常量。 C++ template 为我们提供了编译期计算的功能。编译器在处理template时,实际上相当于一个解释器的作用。充分利用template可以提高代码的运行速度,可以降低代码维护的复杂度,还可以为代...
阅读全文
posted @ 2004-06-29 05:12
天水涧
阅读(1802)
推荐(0)
摘要:
难度: 先来一道思考题 template struct A {}; 假若有个int类型的对象i,那么对于下面这段代码 A obj; 这个是合法的吗? 答: A obj; 可能合法 或 可能不合法。 什么东西可以当作模板的参数呢? 部分的内建类型和用户类型,和部分非类型的东西也可以当作模板参数。 非类型模板参数的一个要求是,编译器能在编译期就能把参数确定下来。换言之,就是非类型的模板...
阅读全文
posted @ 2004-06-08 05:35
天水涧
阅读(2179)
推荐(0)
摘要:
难度: 先阅读下面的代码然后来解答下面的那个问题 struct A {}; int main() { A *p = new A; p->~A(); free(p); } 问题:new/delete 和 malloc/free 有哪些区别? 答:new/delete 会在分配的内存上调用对象的构造函数和析构函数来初始化和销毁对象,而 malloc/free 却不能。更重要的...
阅读全文
posted @ 2004-06-06 20:16
天水涧
阅读(1053)
推荐(0)
摘要:
难度: 文前提醒:看这篇文章时须家长陪同并引导,以免走火入魔 先看看下面的代码? struct A { A(){} }; template void func(T() ) {} int main() { A a( A() ); //(1), OK func( A() ); //(2), Wrong a = 5; //(3...
阅读全文
posted @ 2004-06-05 16:58
天水涧
阅读(1062)
推荐(0)
摘要:
难度:C/C++有三个预编译常量,合理的使用可以为我们简化调试一: __FILE__ 现在有个叫main.cpp的文件,里面有如下的代码#includeint main(){ std::cout\main.cpp二: __LINE__只用代码说话#includeint main(){ std::coutint main(){ std::cout<<__FUNCTION__<<std:...
阅读全文
posted @ 2004-06-05 03:37
天水涧
阅读(899)
推荐(0)