随笔分类 -
C++
C++ language , COM , ALT ,STL ,ETC.
摘要:http://www.vckbase.com/index.php/wv/1315简序大学毕业前的最后一学期,在一家公司实习,当时的工作需要用到一些操作系统提供的组件。那时候只知道COM这个名词,并不知道到底是怎么回事,只知道上网 到处找别人的源码解决自己的问题;那段日子到现在回忆起来都是灰色的,每天...
阅读全文
摘要:tlb、tlh和tli文件的关系tlb文件:com类型库文件。在需要使用对应com类的模块里,“#import ...*.tlb”使用之。tlh、tli文件:他们是vc++编译器解析tlb文件生成的标准c++文件。因为odl和tlb并不是C++标准的东东,有必要把它们翻译成标准的C++类型,使得C+...
阅读全文
摘要:The 'const' system is one of the really messy features of C++.It is simple in concept: variables declared with ‘const’ added become constants and cannot be altered by the program. However it is also used to bodge in a substitute for one of the missing features of C++ and there it gets horrid
阅读全文
摘要:在C++中,#include<iostream>与#include<iostream.h>的区别,前者要使用更新的编译器(其实大部分编译器多比较前卫了,出了有些搞嵌入式的用变态的编译器)。喔,原来iostream是C++的头文件,iostream.h是C的头文件,即标准的C++头文件没有.h扩展名,将以前的C的头文件转化为C++的头文件后,有时加上c的前缀表示来自于c,例如cmath就是由math.h变来的。using namespace std //使用名字空间(使用所有)using namespace std::cout//只使用cout如不用using,则在代码前
阅读全文
摘要:头文件有h和没有h的区别简单来说:.h的是标准C的头文件,没有.h的是标准C++的头文件,两种都是头文件。造成这两种形式不同的原因,是C++的发展历史决定的,刚才正好有别的人也问这个问题,这里我再回答一下(注意vs2008和vs2005对标准C++的支持是一样的):以iostream和stdio.h为例,iostream是C++的库,stdio.h是标准C的库。2、新的C++标准摒弃了.h形式的头文件,所以在vs2005里面是没有iostream.h的头文件的。3、 在早期的vs版本,比如VC6.0,用的还是老版本的C++标准库,例如iostream.h,并且当时标准库也没有引入名字空间。因此
阅读全文
摘要:第一个原则应该是,如果可以不包含头文件,那就不要包含了。这时候前置声明可以解决问题。如果使用的仅仅是一个类的指针,没有使用这个类的具体对象(非指针),也没有访问到类的具体成员,那么前置声明就可以了。因为指针这一数据类型的大小是特定的,编译器可以获知。第二个原则应该是,尽量在CPP文件中包含头文件,而非在头文件中。假设类A的一个成员是是一个指向类B的指针,在类A的头文件中使用了类B的前置 声明并便宜成功,那么在A的实现中我们需要访问B的具体成员,因此需要包含头文件,那么我们应该在类A的实现部分(CPP文件)包含类B的头文件而非声明 部分(H文件)。
阅读全文
摘要:static_cast转换类似于C/C++里面的强制类型转换。 dynamic_cast转换是根据基类派生类的原则进行转换,把一个派生类转换为基类使用这个转换。 const_cast转换是去掉const变量的const--------------------------------------------------------------------------------------------------dynamic_cast: 通常在基类和派生类之间转换时使用,run-time cast const_cast: 主要针对const和volatile的转换. st...
阅读全文
摘要:花了两天时间阅读了ICOM,总体感觉是C++ 确实很复杂,会用与用的好的之间的距离是十万八千里。还好之前有深入阅读<c++ primer>,以及针对CP有两次代码经验(一个红黑树算法的内存池,某项目需要“简写”CString);阅读essential com ,inside com ,并做过一些代码试验;阅读过<essential c++ >并做过一些试验----才能勉强阅读。知道在讲什么的占70%,真正能理解的可能只有50%。template一直没有大规模写过相关代码,所以阅读基本上是走马观花,但是一些原理也基本上明白在讲什么,为什么要这么做。有些内容,感觉如果对C+
阅读全文
摘要:To implement virtual functions, C++ uses a special form of late binding known as the virtual table. The virtual table is a lookup table of functions used to resolve function calls in a dynamic/late binding manner. The virtual table sometimes goes by other names, such as “vtable”, “virtual function..
阅读全文