现在位置: 首页 > c++
在一些大的工程中,可能会包含几十个基础类,免不了之间会互相引用 ( 不满足继承关系,而是组合关系 ) 。也就是需要互相声明。好了,这时候会带来一些混乱。如果处理得不好,会搞得一团糟,根据我的经验,简单谈谈自已的处理办法: 编码时,我们一般会尽量避免 include 头文件,而是采用声明 class XXX 。 但有时候还是必须用 Include 头文件,那么,两者的划分在于什么呢? 应该是很明确的,但书上好像都少有提及。 首先: ...
阅读全文
2013-04-06 22:36 工业·编程 ⁄ 共 208字 暂无评论
刚才写程序,偷了个懒,使用了lstrcpyn来进行unicode的字符拷贝,结果发现少拷贝了一个字符,看了下MSDN: TCHAR chBuffer[512]; lstrcpyn(chBuffer, "abcdefghijklmnop", 4); chBuffer的结果为abc, 也就是指定了长度4,拷贝3个字符,同时加一个'/0'字符。 而strncpy(unicode版本为_tcsncpy)则中规中矩的拷贝参数指定的字符数。
阅读全文
SQLite,是一款轻型的数据库,是遵守ACID的关联式关系数据库,目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同样的代码可以实现跨平台编译,这个数据库和微软的Access很象,都是小型的数据库管理系统,最大的差别为sqlite不需要office的支持,可以完全开源,是真正意义上的跨平台的数据库。    &#...
阅读全文
2012-12-25 14:38 工业·编程 ⁄ 共 1398字 暂无评论
对于某些对象来说,不用外部数据进行完全初始化是不合理的。如一个没有输入姓名的地址簿对象。 无缺省构造函数的三个问题: 1. 建立数组 例: classEquipmentPiece { public: EquipmentPiece(int IDNumber); ... }; EquipmentPiecebestPieces[10]; // 错误!没有正确调用EquipmentPiece 构造函数 EquipmentPiece*bestPieces = new EquipmentPiece[10]; // 错误! 解决办法: ① 数组定义时提供必要参数。这种方法不能用在堆数组...
阅读全文
2012-12-22 23:43 工业·编程 ⁄ 共 827字 暂无评论
math.h 数学函数库,一些数学计算的公式的具体实现是放在math.h里,具体有: 1 三角函数 double sin (double); double cos (double); double tan (double); 2 反三角函数 double asin (double); 结果介于[-PI/2, PI/2] double acos (double); 结果介于[0, PI] double atan (double); 反正切(主值), 结果介于[-PI/2, PI/2] double atan2 (double, double); 反正切(整圆值), 结果介于[-PI/2, PI/2] 3 ...
阅读全文
1、命名空间std C++标准中引入命名空间的概念,是为了解决不同模块或者函数库中相同标识符冲突的问题。有了命名空间的概念,标识符就被限制在特定的范围呢,不会引起命名冲突。最典型的例子就是std命名控件,C++标准库中所有标识符都包含在该命名空间中。 如果确信在程序中引用某个或者某些程序库不会引起命名冲突,那么可以通过using操作符来简化对程序库中标识符(通常时函数)的使用,例如: using namespace std; ...
阅读全文
2012-12-07 12:20 工业·编程 ⁄ 共 3341字 评论 1 条
本人不是卖书的,我也不会给出任何购书链接,只是给C语言学习者推荐一条学习的方向。如果你喜欢看电子书网上很多,如果你喜欢纸质那么就买吧,经典的书值得收藏,是对版权的尊重! 》》》Linux网络编程必看书籍推荐 基础篇 1.《写给大家看的C语言书(第2版)》 原书名: Absolute Beginner's Guide to C (2nd Edition)  原出版社: Sams  作者: (美)Greg Perry    [作译者介绍]  ...
阅读全文
2012-12-04 23:20 工业·编程 ⁄ 共 4391字 暂无评论
一.   虚基类的声明: 1.  虚继承: 在以下类的定义层次中,Derived1与Derived2的对象将各自拥有一个基类子对象Base,类A作为Derived1与Derived2的派生类,将拥有2个基类子对象Base,一个存储在基类子对象Derived1中,另一个存储在基类子对象Derived2中,如果类A想使用两个基类子对象Base,这没问题,但是如果想共享同一个Base子对象,比如使用Base记录同一个状态,而不需要记录多个状态,上述常规继承就不能满...
阅读全文
上一篇  using声明、using指示及其作用域详解  说的是函数内部或者全局作用域中使用using声明和using指示的情况,这里说的是在嵌套命名空间中使用using声明与using指示的情况。 //named_namespace.h  命名空间成员声明与定义头文件 [html] view plaincopyprint? 1.  #ifndef NAME_17_2_3  2.  #define NAME_17_2_3  3.  namespace name_17_2_3  4.  {  5....
阅读全文
1. using 声明:一个using声明一次只能引入一个命名空间成员,从using声明点开始,直到包含该using声明的作用域结尾,声明的名字仅仅在该作用域是可见的,外部作用域中相同的名字被屏蔽,它可以出现在全局作用域,局部作用域或者命名空间作用域中,类中的using声明局限于使用其基类中定义的名字; using声明将名字直接放入出现using声明的作用域,好像using声明是命名空间成员的局部别名一样,这种声明是局部化的,名字仅仅在us...
阅读全文