一个使用C++中的const例子

class SyncScheduler { public:     SyncScheduler(string name) :_name(name){}     //假设getName返回的是一个string型引用,由于函数本身是一个const型函数     //为了确保_name不会被改变,必须在...

2018-09-05 13:45:57

阅读数 33

评论数 0

细说 C++ Traits Classes

本文转载自 leehao.me https://blog.csdn.net/lihao21/article/details/55043881,感谢原作者的讲解。 最近在看侯捷的《STL源码剖析》,看到第三章有关 traits 的介绍,被搞得一头雾水,看了半天不知所云。为了彻底了解这个技法的原理,...

2018-09-03 10:54:40

阅读数 31

评论数 0

C++模板编程之: 函数重载与函数特例

/*C++标准中分辨重载的三个重要准则。 准则一:两候选函数中如果有一方的形参列表与调用实参更匹配,则淘汰另一方。 参数类型匹配规则一般考虑是:匹配度从高到低依此是,同等类型转换,标准类型转换,自定义类型转换 同等类型转换 eg:  char[]<=>c...

2018-09-02 10:48:53

阅读数 40

评论数 0

WSAGetLastError() 返回的错误

下面列示了用户在 Windows 操作系统上使用 TCP/IP 时,可能最常遇到的错误代码。它不是完整的错误列表。可以在文件 winsock2.h 中找到 WSAGetLastError() 返回的错误。如果您未安装开发环境,则在您的系统上可能未安装此文件。在“Windows 套接字 2 应用程序...

2018-06-23 10:58:54

阅读数 184

评论数 0

关于POD类型

在阅读最后一战源码时,发现一个结构体名字中带了POD字样,才知道这是plain old data的缩写。那么关于什么是POD类型,下边的文章介绍很清楚,请参考https://blog.csdn.net/kongkongkkk/article/details/77414410以及https://ww...

2018-06-13 22:36:26

阅读数 106

评论数 0

多线程编程中的有状态(stateful)和无状态(stateless)以及可重入、不可重入

要写出线程安全的类和函数,有状态、无状态,可重入、不可重入这四个概念绕不开。什么是线程安全的类和函数呢?就是可以被多个线程调用而不会出现数据的错乱的类的对象和函数。导致线程不安全的根本原因是函数或类对象中使用了共享数据(类静态成员变量、全局变量等),由于没有对这些共享数据进行同步操作而导致数据错乱...

2018-06-13 21:55:32

阅读数 39

评论数 0

std::string在vs中调试中不显示数值的问题

如上图所示,通常string字符串里的字符是看的到的,但有时调试中,string的值不可见,说明此字符串里有\0的字符存在,此时需要检查程序逻辑。

2018-06-13 16:31:36

阅读数 789

评论数 0

多线程程序设计中的线程上下文切换

Context Switches 上下文切换,有时也被称为进程切换(process switch)或任务切换。是一个重要的性能指标。CPU从一个线程切换到另外一个线程,需要保存当前任务的运行环境,恢复将要运行任务的运行环境,必然带来性能消耗。Context Switches 上下文切换简介操作系统...

2018-06-13 13:36:52

阅读数 196

评论数 0

程序设计范式

转自孟岩博客https://blog.csdn.net/myan/article/details/5928531function/bind的救赎(上)程序设计有一个范式(paradigm)的问题。所谓范式,就是组织程序的基本思想。这个思想,反映了程序设计者对程序的一个基本的哲学观。也就是说,他认为...

2018-06-12 14:11:21

阅读数 183

评论数 0

typename关键字用法

阅读某开源代码,利用模板特新创建一个指针池时,对下面的两行代码产生了困惑template<typename T>class NetPointerPool{public: typedef typename std::vector<T*...

2018-06-05 14:35:45

阅读数 222

评论数 0

有状态对象和无状态对象

1、线程安全   要搞清楚有状态对象和无状态对象,首先需要弄清楚线程安全的问题。如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,那么就是线程安全的。   或者说,一个类或者程序所提供的...

2018-06-05 11:09:12

阅读数 38

评论数 0

设置各编辑器tab键为4个空格

将TAB设置为4个空格的原因很多,其中一点是为了统一不同编译器(notepad++、vs、sourceinsight等)对TAB的解释,防止代码风格在不同编译器下不一致等。Notepad++:设置--首选项--语言--制表符设置--(勾选上)替换为空格vs下:在菜单中选择: 工具--&am...

2018-05-31 10:15:23

阅读数 771

评论数 0

VS2013 MFC there are no useable controls in this group

开发MFC程序,工具箱中无可用控件时,在Generral上右键选择 choose items后会从微软加载控件项,之后重启VS就行了

2018-05-24 11:50:27

阅读数 53

评论数 0

解决windows上mysql8.0 community版(MYSQL server has gone away)无法连接数据库问题

阅读某手游项目源码时,连接数据库阶段报错,报错如下图所示:显示 MYSQL server has gone away,网上看了些中文文章,前篇一律都指向连接超时或sql语句请求数据量过大等等,但我是首次编译链接,不存在这个情形。单步跟踪情况下,发现出错原因在mysql_real_connect执行...

2018-05-18 19:42:10

阅读数 352

评论数 0

解决vs2015 未能正确加载visual c++ project system package

1.win10在卸载程序里找到vs2015的exe(几个G大小),点卸载后弹出当初安装界面,选择修复 2.不要尝试网上乱七八糟的改xml,命令行操作的方法,修复就是了。 3.如果此前装过vs2015的vc++运行库,注意下版本号,与update3关联的安装版本iso里的运行库版本是14.0.2...

2018-03-12 20:12:33

阅读数 3789

评论数 0

Ansi,UTF8,Unicode,ASCII编码的区别

近日需要不同的编码,关于上述编码,一直迷迷糊糊,查了些资料,总算大致了解了。 下面全是从网上搜来的: 1.  ASCII和Ansi编码     字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为      单字节内码 ...

2017-11-26 18:50:37

阅读数 61

评论数 0

DECLARE_HANDLE宏解析

在MFC源码中,经常看到这样的语句: DECLARE_HANDLE(HDRVR); DECLARE_HANDLE(HDTRCV); 查看DECLARE_HANDLE定义如下: #ifdef STRICT typedef void *HANDLE; #define DECLARE_HAN...

2017-11-10 13:47:58

阅读数 176

评论数 0

MFC的RTTI实现

《深入解析MFC》这类解剖MFC内部实现的书籍中提到了MFC的RTTI(运行时类型信息)记录由DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC实现。 先看看DECLARE_DYNAMIC宏的定义。如下: #define DECLARE_DYNAMIC(class_name) ...

2017-10-19 09:57:10

阅读数 132

评论数 0

提示
确定要删除当前文章?
取消 删除