
C++
pizzq
这个作者很懒,什么都没留下…
展开
-
ANSI,MBCS,UNICODE
编程的书中经常介绍UNICODE,还有字符串函数中经常见各种格式,下面以以"abc我你他"为例分别介绍测试源码:TCHAR* p = _T("abc我你他"); std::cout 我们写的代码应该是这个样子的,即既符合ANSI又符合UNICODE的代码,使用_T宏和_ts函数集。一、ANSI编码:普通英文字母一个,汉字占两个字节。"abc我你他"占用9个字节。 编译选项里没有相原创 2006-06-21 20:05:00 · 1594 阅读 · 0 评论 -
C++中typename关键字的使用方法和注意事项
1, 什么地方使用?用在模板定义里,标明其后的模板参数是类型参数。例如 templateT foo(const T& t, const Y& y){//....};templaceclass CTest{private: T t;public: //...}其实,这里最常用的是使用关键字class,而且二者功能完全相同,这里的class和定义类时的class完全是两回事,C++当时就是原创 2007-01-18 19:42:00 · 31291 阅读 · 10 评论 -
深入了解虚拟函数的静态类型和动态类型
先来看一个问题,如果一个子类重载的虚拟函数为privete,那么通过父类的指针可以访问到它吗? #include class B{public: virtual void fun() { std::cout << "base fun called"; };};class D : public B {private: virtual voi原创 2009-03-20 09:43:00 · 1583 阅读 · 0 评论 -
C++如何生成utf-8编码的文件
习惯了java生成文件的方便,c++如何生成utf-8编码的文件呢?步骤如下:1. 首先要写一个BOM头。UTF-8文件一般是要这个头的,当然也可以没有。2. 将要生成的字符先使用宽字符格式生成,然后调用WideCharToMultiByte转为utf-8编码,写入文件。例子如下: FILE * pFile = fopen("d://a.txt", "w");原创 2009-06-30 21:42:00 · 7886 阅读 · 0 评论 -
C++ vtable的生成以及vptr的赋值跟踪实验
在看《Inside The C++ Object Model》时想到一个问题, vtable是在什么时候生成的?运行时对象的vptr又是什么时候赋值的?如何得知相应的函数的地址的?为此写程序实验了一下,得出结论如下:1. 编译的时候,编译器自动为每个有虚函数的类生成vtable,此vtable类似于静态常量数据,并编译到最终的可执行文件中。2. 具体实例的vptr在构造函数中赋值,原创 2009-07-05 14:33:00 · 2227 阅读 · 0 评论