![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 91
梦幻若水
这个作者很懒,什么都没留下…
展开
-
防止头文件重复编译
防止头文件重复编译有两种方式:方式一:#ifndef #define #endif方式二:#pragma once #ifndef的方式依赖于宏名字不能冲突,这不光可以保证同一个文件不会被包含多次,也能保证内容完全相同的两个文件不会被不小心同时包含。当然,缺点就是如果不同头文件的宏名不小心“撞车”,可能就会导致头文件明明存在,编译器却硬说找不到声明的状况。转载 2013-08-27 07:06:50 · 1390 阅读 · 0 评论 -
c++对象切割(Object Slicing)
当把一个派生类对象赋给一个基类对象时,会发生对象切割。(另外用基类对象强制转换派生类对象也会)对象切割会发生什么呢?#include using namespace std;class CShape{public: CShape () { m_col转载 2013-12-09 09:51:44 · 600 阅读 · 0 评论 -
获取中文首字母
头文件 #ifndef INITIAL_H#define INITIAL_H#include using namespace std;/** * @brief The Initial class * get the initial letters of a Chinese string */class Initial{public: Initial(); ~原创 2013-12-07 16:44:25 · 555 阅读 · 0 评论 -
C++ 虚函数表解析
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这转载 2013-11-26 23:24:27 · 387 阅读 · 0 评论 -
extern 的用法
extern 可以置于变量或者函数前,表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 extern 也可以用来进行链接指定。 C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称,而C语言则不会,因此会造成链接时找不到对应函数的情况,此时C函数就需要用extern “C”进行原创 2013-11-26 11:40:13 · 466 阅读 · 0 评论 -
wchar_t char string wstring 之间的转换
在处理中文时有时需要进行wchar_t,char,string,wstring之间的转换。其中char和string之间、wchar_t和wstring之间的转换较为简单,代码在vs2010下测试通过。[cpp] view plaincopy#include #include #include #include using n转载 2013-10-22 10:28:48 · 869 阅读 · 0 评论 -
C++基于ATL工程编写ActiveX控件
开发环境:VS2010开发工程:C++ATL项目开发目的:创建ActiveX实现js调用步骤:1. 创建一个ATL工程应用程序类型选择动态链接库(DLL),勾选支持COM+1.0,勾选支持部件注册器2. 选择类视图,添加接口与类如果没有找到类视图,可以在工具栏中添加上视图选择工程,右键添加类转载 2013-09-24 11:01:21 · 969 阅读 · 0 评论 -
gloox 心跳处理封装
通常在客户端与服务器之间需要心跳来维系连接,XMPP可以通过一个扩展协议XEP-0199来实现客户端与服务器端的心跳。封装思路:在程序中另起一个线程专门用做心跳处理;GLOOX库里对XEP-0199的ping发送实现是在ClientBase类里的一个方法:void xmpp Ping( const JID &to, EnentHandler *eh );在说明这个方法之前先介绍转载 2013-09-23 14:37:26 · 1168 阅读 · 0 评论 -
函数指针详解
这篇文章把函数指针的各种常用情况做了一个详解的总结。 1. 指向普通函数的指针 很简单,如下的例子可以说明基本格式和用法:[cpp] view plaincopyint int_add(int a, int b) { return (a+b); } int int_sub(int a, int b) { return (a-b转载 2013-10-09 11:27:39 · 407 阅读 · 0 评论 -
橡皮筋类(CRectTracker)
Windows自带的画图软件中可以用虚线框选择图像的某个区域,之后便可以拖动、放大、缩小该区域,这是通过橡皮筋类(CRectTracker)来实现的,它将实现用线框选中一个区域,并可以拖动、放大、缩小该区域。简介:CRectTracker类允许一个项被显示,移动,以不同的方式改变大小。虽然CRectTracker类是设计来支持用户以图形化界面与OLE项交互的,但是它的使用不仅限于支转载 2013-09-22 14:54:38 · 564 阅读 · 0 评论 -
汉字转换拼音
Qt中的QString 转化到标准C++ 中的string进行操作。QString Translation::getLetter(QString strText){ bool m_LetterEnd=false; //转换标准string操作 std::string stdstrText = strText.toStdString(); unsigned char转载 2013-09-12 10:48:19 · 846 阅读 · 0 评论