c++
zhuralll111
这个作者很懒,什么都没留下…
展开
-
关于c++名字解析的一个问题:名字空间污染
编译环境是gcc version 4.5.1 (tdm-1)和Microsoft Visual Studio 2010 10.0.30319.1 RTMRel操作系统是Windows7 旗舰版问题:#include using namespace std;namespace X{ struct Y{int v;};};bool o转载 2014-06-24 13:21:18 · 1734 阅读 · 1 评论 -
命名空间
三和化工科技有限公司原创 2014-06-26 17:09:44 · 497 阅读 · 0 评论 -
谈封装的必要性和注意事项
1.保证某些属性和方法不被waib原创 2014-06-26 13:37:34 · 965 阅读 · 0 评论 -
服务器集群架构的设计与选择
在网络应用中,“负载均衡”已经不能算是什么新鲜话题了,从硬件到软件,也都有了很多的方法来实现负载均衡。我们这里讨论的负载均衡,并不是指依靠DNS转向或其它硬件设备等所作的负载均衡,而是指在应用层所作的负载均衡。 一般而言,只有在大型在线系统当中才有必要引入负载均衡,那么,多大的系统才能被称为大型系统呢?比如动辄同时在线数十万的网络游戏,比如同时在线数在10万以上的WEB应用,这些我们都可转载 2014-06-24 16:20:55 · 594 阅读 · 0 评论 -
codeblocks 设置vs2010编译器
默认是GCC的编译器,CodeBlocks是不自带其他的编译器的,如果本机有安装列表中的其他编译器的话设置一下就可以用了。设置编译器(rc.exe,link.exe,cl.exe)所在的文件夹Program Files:Additional Paths:配置头文件等路径Compiler:Link:请注意上图转载 2014-06-24 13:10:56 · 1520 阅读 · 0 评论 -
C++中建立对象间消息连接的一种系统方法——回调函数
用过C++进行过面向对象程序设计的用户都知道,程序中的对象很少单独存在。不考虑对象间的相互作用几乎是不可能的。所以,标识对象间的关系或建立对象间的消息连接是面向对象程序设计的一项重要任务。本文着重从C++程序设计的角度,提出一种建立对象间消息连接的实用方法。如果你想详细了解面向对象程序设计技术,请参阅有关专著。大家都知道对象是数据和方法的封装体。在C++中,它们分别表现为数据成员和成员函数。程序设转载 2014-06-24 13:06:41 · 641 阅读 · 0 评论 -
EffectiveC++第七章杂项学习笔记
条款45: 弄清C++在幕后为你所写、所调用的函数当C++编译器通过它的时候。如果你没有声明下列函数,体贴的编译器会声明它自己的版本。这些函数是:一个拷贝构造函数,一个赋值运算符,一个析构函数,一对取址运算符。另外,如果你没有声明任何构造函数,它也将为你声明一个缺省构造函数。所有这些函数都是公有的。 条款50: 提高对C++的认识C++最首要的目标在于:· 和C的兼容性。很多很转载 2014-06-24 11:53:38 · 450 阅读 · 0 评论 -
effective c++ 条款12 赋值对象时勿忘其每一个成员
当我们自己为class设计 copy构造函数和copy assignment操作符时,如果我们漏掉一个成员变量时,编译器并不会友好的告诉你,当然有时候我们也是故意这样做。当我们担起“为派生类写copy 函数”时责任重大,必须也要小心的复制其base class部分 如下: class Customer {};class PriorityCustomer:public Cu转载 2014-06-24 10:43:02 · 465 阅读 · 0 评论 -
EffectiveC++第四章类和函数:设计与声明学习笔记
条款18: 争取使类的接口完整并且最小#include iostream>#include string>using std::cout;using std::endl;namespace sun{ enum boundscheckingstatus {no_check_bounds,check_bounds};转载 2014-06-24 11:40:15 · 418 阅读 · 0 评论 -
C++ 初始化列表
何谓初始化列表与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。在C++中,struct和class的唯一区别是默认的克访问性不同,而这里我们不考虑访问性的问题,所以下面的代码都以struct来演示。struct foo{ string name ; int id ; foo(转载 2014-06-24 11:38:39 · 479 阅读 · 0 评论 -
EffectiveC++第三章构造函数析构函数和赋值操作符学习笔记
条款11: 为需要动态分配内存的类声明一个拷贝构造函数和一个赋值操作符这个缺省的赋值操作符会执行从a的成员到b的成员的逐个成员的赋值操作,对指针(a.data和b.data) 来说就是逐位拷贝。 用delete去删除一个已经被删除的指针,其结果是不可预测的。解决这类指针混乱问题的方案在于,只要类里有指针时,就要写自己版本的拷贝构造函数和赋值操作符函数。对于有些类,当实现拷贝构造函数转载 2014-06-24 11:02:48 · 446 阅读 · 0 评论 -
初始化成员列表
那我们为什么要用初始化成员列表,什么时候用初始化成员列表来初始化成员数据呢?Lippman的《C++ Primer》中提到在以下三种情况下需要使用初始化成员列表: 一,需要初始化的数据成员是对象的情况; 二,需要初始化const修饰的类成员; 三,需要初始化引用成员数据; 现在分别举例说明: 一,需要初始化的数据成员是对象。 ----------------转载 2014-06-24 10:31:23 · 424 阅读 · 0 评论 -
网络服务器
mangos源码分析--计划参考:1、http://www.cppblog.com/ming81 mangos源码分析系列2、 http://hi.baidu.com/zyy503950958/blog/item/b92fbe87514e9c26c75cc36c.html mangos 源码阅读笔记,十分详细,框架流程分析的很清晰 3转载 2014-07-15 11:20:04 · 731 阅读 · 0 评论 -
C++ 虚函数的深入思考 -动态绑定案例
使用virtual在类中定义虚函数,是为了实现多态。它是一个动态绑定,晚绑定技术。我们在学数组的时候就明白一个道理,如果知道数组的大小的,就直接定义:1int a[100];但是,如果我们不确定数组是否只有100这么大,那就要使用new来动态创建了。1转载 2014-06-24 16:08:04 · 721 阅读 · 0 评论 -
VS支持GCC编译
1. 配置管理器添加gcc解决方法配置。2. “配置属性|常规”项的“配置类型”改为“生成文件”3. “Nmake”项的“生成命令行”输入: set path=E:/MingW/bin;%path%../cxxtestgen.pl --error-printer -o runner.cpp ../TraitsTest.hg++ -o runner.exe -转载 2014-06-24 13:25:04 · 4110 阅读 · 0 评论 -
EffectiveC++第六章继承和面向对象设计学习笔记
条款35: 使公有继承体现 "是一个" 的含义 当写下类D("Derived" )从类B("Base")公有继承时,你实际上是在告诉编译器(以及读这段代码的人):类型D的每一个对象也是类型B的一个对象,但反之不成立;你是在说:B表示一个比D更广泛的概念,D表示一个比B更特定概念;你是在声明:任何可以使用类型B的对象的地方,类型D的对象也可以使用,因为每个类型D的对象是一个类型B的对象。相转载 2014-06-24 11:51:12 · 376 阅读 · 0 评论 -
ADL关联名字查找(1)
如果给定一个函数名,那么c++编译器如何去查找这个函数呢?1.普通的名字查找 对变量的调用,一般是按scope的大小来的#includeiostream>#includestring>using namespace std;namespace NS{ string x="namespace NS";}string x="g转载 2014-06-24 13:53:14 · 586 阅读 · 0 评论 -
关于C++引用的分析(一)
1.引用不能绑定到非左值。原创 2014-06-27 10:00:54 · 523 阅读 · 0 评论