关于C++中异常的争论何其多也,但往往是一些不合事实的误解。异常曾经是一个难以用好的语言特性,幸运的是,随着C++社区经验的积累,今天我们已经有足够的知识轻松编写异常安全的代码了,而且编写异常安全的代码一般也不会对性能造成影响。 使用异常还是返回错误码?这是个争论不休的话题。大家一定听说过这样的说法:只有在 发布时间:2012-06-30 作者: 佚名技术 views(406)
在嵌入式系统中使用C++的一个常见问题是内存分配,即对new 和 delete 操作符的失控。 具有讽刺意味的是,问题的根源却是C++对内存的管理非常的容易而且安全。具体地说,当一个对象被消除时,它的析构函数能够安全的释放所分配的内存。这当然是个好事情,但是这种使用的简单性使得程序员们过度使用new 和 delete,而不注意在 发布时间:2012-06-30 作者: 佚名技术 views(352)
1、什么是sizeof 首先看一下sizeof在msdn上的定义: The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of type size_t. 看到return这个字眼,是不是想到了函数?错了,sizeof不是一个函数,你见过给一个函数传 发布时间:2012-06-30 作者: 佚名技术 views(516)
我们再看看虚成员函数的调用。类C041中含有虚成员函数,它的定义如下: struct C041 { C041() : c_(0x01) {} virtual void foo() { c_ = 0x02; } char c_; }; 执行如下代码: C041 obj; PRINT_DETAIL(C041, obj) PRINT_VTABLE_ITEM(obj, 0, 0) obj.foo(); C041 * pt = obj; pt-foo(); 结果如下: The detail of C041 发布时间:2012-06-30 作者: 佚名技术 views(253)
几乎在每本课本中几乎都是这样写的,当一个类实例化以后,必将执行构造函数,那么在该类被释放的时候,必将执行析构函数。似乎在人们的印象里,构造函数与析构函数如同一对双胞胎一样,执行完构造函数,必将会执行析构函数...... 今天我做了个实验,彻底的推翻了这个理论。代码如下: #include stdafx.h using namespace st 发布时间:2012-06-30 作者: 佚名技术 views(285)
前面已经说过程序就是方法的描述,而方法的描述无外乎就是动作加动作的宾语,而这里的动作在C++中就是通过语句来表现的,而动作的宾语,也就是能够被操作的资源,但非常可惜地C++语言本身只支持一种资源内存。由于电脑实际可以操作不止内存这一种资源,导致C++语言实际并不能作为底层硬件程序的编写语言(即使是C语言也不能 发布时间:2012-06-30 作者: 佚名技术 views(598)
template metaprogramming (TMP)(模板元编程)是写 template-based(基于模板)的运行于编译期间的 C++ 程序的过程。考虑一下:一个 template metaprogram(模板元程序)是用 C++ 写的运行于 C++ 编译器中的程序。当一个 TMP 程序运行完成,它的输出从 templates(模板)实例化出的 C++ 源代码片断随后被正常编译。 如果你 发布时间:2012-06-30 作者: 佚名技术 views(496)
这是C++信徒的摩西十戒,虽然说的是十戒,实际上有十四条,但这十四条都值得将其铭刻在显示器的边缘,供C++程序员们每日膜拜。我要将其铭刻在我的blog里,铭刻在我的记忆里,直到它们成为我思维的一部分。 第0条:不要拘泥于细节(了解哪些东西不应该标准化) 缩进:不必规定如何缩进,每个人遵从一个自己喜欢的规则即可。 发布时间:2012-06-30 作者: 佚名技术 views(380)
|