C/C++
无尽意
这个作者很懒,什么都没留下…
展开
-
探究类对象在创建时各成员的构造顺序
一、先看一个简单的例子:class B{public: B(){cout<<"B constructor"<<endl;}private: int m; int n;};int _tmain(int argc, _TCHAR* argv[]){ B b1; system("pause"); return 0;}完成b1对象的构造前,它会先构造类的数据成员(原创 2012-06-14 23:14:30 · 611 阅读 · 0 评论 -
Standard Annotation Language (SAL)
A Brief Introduction to the Standard Annotation Language (SAL)转载 2012-11-30 14:57:44 · 857 阅读 · 0 评论 -
VC++多线程编程
一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:void CSingleThreadDlg::OnSleepSixSecond(){Sleep(6000); //延时转载 2012-06-24 13:01:28 · 513 阅读 · 0 评论 -
memcpy和strcpy的区别
strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。转载 2012-06-16 21:55:44 · 485 阅读 · 0 评论 -
COM编程
在VC知识库中发现两篇讲COM编程的,还不错,转载下提供参考了COM编程入门:第一部分 什么是COM,如何使用COMCOM编程入门:第二部分 深入COM服务器将文章中的例子在VS2008中实践了一下:1. 使用单接口的COM对象#include "stdafx.h"#include#pragma comment(lib, "ole32.lib")#includ转载 2012-06-13 22:50:51 · 501 阅读 · 0 评论 -
new和delete原理
当我们在程序中写下 new 和 delete 时,我们实际上调用的是 C++ 语言内置的 new operator 和 delete operator(注:operator表示操作符)。所谓语言内置就是说我们不能更改其含义,它的功能总是一致的。以 new operator 为例,它总是先分配足够的内存,而后再调用相应的类型的构造函数初始化该内存。而 delete operator 总是转载 2012-06-16 18:09:55 · 1548 阅读 · 0 评论 -
构造函数不能是虚函数
先了解一下虚函数的工作原理:编译器处理虚函数的方法是给每个对象添加一个隐藏成员。隐藏成员中保存了一个指向函数地址数组的指针。这种数组称为虚函数表(virtual function table,vtbl)。虚函数表中存储了为类对象进行声明的虚函数的地址。例如,基类对象包含一个指针,该指针指向基类中所有虚函数的地址表。派生类对象将包含一个指向独立地址表的指针。如果派生类提供了虚函数的新定义,该虚函转载 2012-06-16 20:03:18 · 482 阅读 · 0 评论 -
关于new和delete,new[] 和delete[]
通常状况下,编译器在new的时候会返回用户申请的内存空间大小,但是实际上,编译器会分配更大的空间,目的就是在delete的时候能够准确的释放这段空间。这段空间在用户取得的指针之前以及用户空间末尾之后存放。实际上:blockSize = sizeof(_CrtMemBlockHeader) + nSize + nNoMansLandSize;其中,blockSize 是系统所分配的实际空间大转载 2012-06-16 18:41:23 · 587 阅读 · 0 评论 -
malloc/free和new/delete
在C/C++中进行内存分配和释放时肯定会用到malloc/free、new/delete,它们是配套使用的。一、malloc、free1. 工作机制malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,原创 2012-06-16 19:45:26 · 608 阅读 · 0 评论 -
字符串间的转换
一、char 与 wchar_t 间的转换1. char to wchar_tchar *chr = "Hello World";wchar_t wchr[128];MultiByteToWideChar(CP_ACP, 0, chr, strlen(chr) + 1, wchr, sizeof(wchr));2. wchar_t to charchr = (c原创 2013-09-26 09:49:06 · 992 阅读 · 0 评论