- 博客(31)
- 问答 (1)
- 收藏
- 关注
原创 c++命名规则
类/结构: 1、开头不带C,大写开头,为便于界定,每个单词的首字母要大写。 2、类的命名推荐用"名词"或"形容词+名词"的形式函数: 1、函数的命名: 函数的名称由一个或多个单词组成。开头字母小写,为便于界定,每个单词的首字母要大写。 2、函数名应当使用"动词"或者"动词+名
2017-03-30 16:22:55
1241
转载 CRITICAL_SECTION的理解
很多人对CRITICAL_SECTION的理解是错误的,认为CRITICAL_SECTION是锁定了资源,其实,CRITICAL_SECTION是不能够“锁定”资源的,它能够完成的功能,是同步不同线程的代码段。简单说,当一个线程执行了EnterCritialSection之后,cs里面的信息便被修改了,以指明哪一个线程占用了它。而此时,并没有任何资源被“锁定”。不管什么资源,其它线程都还是
2017-03-27 18:03:14
390
转载 创建型模式总结
创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。创建类模式有5种,分别是:单例模式:用于得到内存中的唯一对象。工厂方法模式:用于创建复杂对象。抽象工厂模式:用于创建一组相关或相互依赖的复杂对象。建造者模式:用于创建模块化的更加复杂的对象。原型模式:用于得到一个对象的拷贝。为什么需要创建性模式 首先
2017-03-17 23:00:38
327
原创 设计模式之简单工厂模式、工厂模式、抽象工厂模式
简单工厂模式要素:具体工厂、抽象产品、具体产品概括:一系列的所有产品由同一工厂生产例子:同一工厂生产不同种类的牙膏:中华、黑人、佳洁士工厂模式要素:抽象工厂、具体工厂、抽象产品、具体产品概括:同一系列的不同产品由不同的具体工厂生产例子:公司扩大生产线,中华由中华牙膏厂生产,黑人由黑人牙膏厂生产,同理佳洁士抽象工厂模式要素:抽象工厂、具体工厂、抽象
2017-03-17 22:07:01
369
原创 C++的嵌套类
C++的嵌套类意思就是类中定义的类,它和外围类的成员类似,也被相应的访问权限修饰符修饰。1 嵌套类可以直接方位外围类中的static成员变量。2 嵌套类可以通过引用,指针,或者对象来访问外围类的成员,不管该成员是public,private,protected。3 嵌套类被private修饰的时候就不能在用户代码中被定义对象,因为是private的4 外围类对嵌套类的非pu
2017-03-17 17:21:36
329
转载 重载、重写(覆盖)和隐藏的区别
重载、重写(覆盖)和隐藏的区别一、重载 重载从overload翻译过来,是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。示例代码如下:classA{public: void test(int i); void test(double i); void test
2017-03-17 14:13:21
547
原创 静态成员变量的初始化
我们定义如下类: 复制代码//A.hclass A{private:static const int m = 5;static int n;static vector buf;};复制代码其中包含三个私有的静态类成员,C++规定const静态类成员可以直接初始化,其他非const的静态类成员需要在类声明以外初始化,我们一般选择在类的实
2017-03-16 16:43:00
3629
原创 C++ 默认初始化规则
栈中的变量(函数体中的自动变量)和堆中的变量(动态内存)会保有不确定的值;全局变量和静态变量(包括局部静态变量)会初始化为零。成员变量的初始化:为了避免不确定的初值,通常会在构造函数中初始化所有内置类型的成员
2017-02-10 10:58:31
305
转载 C++标准库和标准模板库
转自原文http://blog.youkuaiyun.com/sxhelijian/article/details/7552499C++强大的功能来源于其丰富的类库及库函数资源。C++标准库的内容总共在50个标准头文件中定义。在C++开发中,要尽可能地利用标准库完成。这样做的直接好处包括:(1)成本:已经作为标准提供,何苦再花费时间、人力重新开发呢;(2)质量:标准库的都是经过严格测试的,正确性有
2017-02-08 15:06:01
282
原创 模板类的前置声明
templateclass Array;templateclass Pointer;templateclass Array_data{ friend class Array; friend class Pointer; Array_data(unsigned int n) :data(new T[n]) ,sz(n) ,use(1)
2017-01-15 15:29:25
6730
转载 c++ Friend
友元是指:采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分(注意友元函数不是类的一部分),但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和
2017-01-07 17:31:09
208
转载 MFC OnContextMenu
版权声明:www.gudianxiaoshuo.com 原创文章版权 -- 古典小说网 WM_CONTEXTMENU消息 用来响应鼠标右键消息, 它响应的不是鼠标右键按下消息,也不是鼠标右键弹起消息而是鼠标右键 依次按下弹起后触发的消息。 因此,若程序还响应了鼠标右键按下的消息OnRButtonDown,且在此响应函数中有模特对话
2017-01-06 10:41:58
2322
原创 MFC主窗口可拖入文件
一、首先在mainFrame的OnCreate消息里面if (CFrameWndEx::OnCreate(lpCreateStruct) == -1) return -1;////////////////////////////////////////////////////////////////// DragAcceptFiles(TRUE); //此
2017-01-04 10:10:27
637
原创 CListCtrl高亮显示一行
CListCtrl高亮显示一行 m_pointList.SetItemState(i, LVIS_SELECTED|LVIS_FOCUSED,LVNI_SELECTED|LVIS_FOCUSED); m_pointList.EnsureVisible(i, FALSE);但我的程序中,调用多次这一段,就高亮了多行,最后检查属性发现single selection设置成了false,
2017-01-03 15:40:17
601
转载 dynamic_cast <new_type> (expression)
dynamic_cast (expression)dynamic_cast运算符,应该算是四个里面最特殊的一个,因为它涉及到编译器的属性设置,而且牵扯到的面向对象的多态性跟程序运行时的状态也有关系,所以不能完全的使用传统的转换方式来替代。但是也因此它是最常用,最不可缺少的一个运算符。与static_cast一样,dynamic_cast的转换也需要目标类型和源对象有一定的关系:继承关系。
2016-12-28 14:31:44
285
转载 MFC选择目录对话框
char szPath[MAX_PATH]; //存放选择的目录路径 CString str; ZeroMemory(szPath, sizeof(szPath)); BROWSEINFO bi; bi.hwndOwner = m_hWnd; bi.pidlRoot = NULL; bi.pszDisplayName = szPath;
2016-12-27 09:58:25
664
转载 C++中static类数据成员
C++中static类数据成员是指以下两种: 类static成员函数 和 类static数据成员一:使用类的static成员的优点1:static成员的名字是在类的作用域中,因此可以避免与其他类的成员或者全局对象名字的冲突2:可以实施封装。static成员可以是私有成员,而全局对象不可见3:通过阅读程序容易看出来static成员与特定类关联的。二:static成员的定义st
2016-12-26 11:20:49
246
原创 不能将“this”指针从“const Vehicle”转换为“Vehicle &”
错误提示:error C2662: “Vehicle::copy”: 不能将“this”指针从“const Vehicle”转换为“Vehicle &”;错误原因:由于让const对象调用了非const的成员函数导致;结论:const对象只能调用const的成员函数;非const对象既可以调用const的成员函数,也可以调用非const的成员函数;
2016-11-27 14:38:22
369
原创 《C++沉思录》之类设计者的核查表
一、你的类需要一个构造函数吗?二、你的数据成员是私有的吗?三、你的类需要一个无参的构造函数吗?四、是不是每个构造函数初始化所有的数据成员?五、类需要析构函数吗?六、类需要一个虚析构函数吗?七、你的类需要复制构造函数吗?八、你的类需要一个赋值操作符吗?九、你的赋值操作符能正确的将对象赋值给对象本身吗?十、你的类需要定义关系操作符吗?十一、删除数组你记得用del
2016-11-20 17:08:35
309
转载 CDC,CPaintDC,CClientDC,CWindowDC区别
CDC,CPaintDC,CClientDC,CWindowDC区别————————————————————————1、首先,对DC进行解释一下:Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备描述表(Device Context, DC)在DC表示的逻辑意义的“画布”上进行图形的绘制。DC是一种包含设备信息的数据结构,它包含了物理设备所需的各种状态信息。Win32程
2016-10-27 10:11:46
344
转载 ScreenToClient And ClientToScreen
ClientToScreen 和ScreenToClient (转)ClientToScreen( )是把窗口坐标转换为屏幕坐标ScreenToClient( )是把屏幕坐标转换为窗口坐标屏幕坐标是相对于屏幕左上角的,而窗口坐标是相对于窗口用户区左上角的VC下,有些函数使用窗口坐标,有些使用屏幕坐标,使用时要分清。一个窗体分为两部分:系统区和客户区象
2016-10-25 13:48:20
313
转载 C++多重继承下的指针类型转换
http://www.cnblogs.com/itZhy/archive/2012/10/08/2713367.html
2016-10-24 17:27:10
213
转载 _MSC_VER含义
_MSC_VER是微软的预编译控制。_MSC_VER可以分解为:MS:Microsoft的简写。C:MSC就是Microsoft的C编译器。VER:Version的简写。_MSC_VER的意思就是:Microsoft的C编译器的版本。微软不同时期,编译器有不同的版本:MS VC++10.0 _MSC_VER=1600MS VC++9.0 _MSC_VER=1500
2016-10-24 14:33:20
509
原创 在已破坏了程序状态的xxx.exe中发生了缓存区溢出
因为这个bug查了半天,只说自己遇到的情况: debug版程序没问题,release版调试的时候跳出这个bug 原因:用的底层库的头文件与库文件不一致 最后更新了头文件与库文件程序正常了
2016-08-29 17:59:39
871
转载 命名空间
命名空间 (C++) Visual Studio 2015 其他版本 Visual Studio 2013Visual Studio 2012Visual Studio 2010命名空间是一个声明性区域,为其内部的标识符(类型、函数
2016-08-23 11:30:50
270
空空如也
游标属性found的打印问题
2014-11-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人