构造函数 a.构造函数名必须与类名相同,不得声明返回类型; b.可以用行参形式为成员赋初值,可以重载; c.返回一个不能传递的指向其定义对象首地址的指针; d.不带任何参数的称为缺省构造函数; e.有个特殊的初始化方式叫初始化表达式表(简称初始化表)。初始化表位于函数参数表之后、函数体{}之前,规则: ①若有继承 发布时间:2012-06-29 作者: 佚名技术 views(188)
对于任何还不熟悉设计模式的人来说,在对这个领域进行简短的纵览之后,可能会留下这样的印象:设计模式是一个市场营销大骗局,它不过是一些简单的编程技术,或者不过是计算机科学家的玩物。尽管这些印象都有那么一点道理,然而设计模式的确是职业C++程序员工具箱中不可或缺的组件。 设计模式是一个被反复谈论的架构主题。它 发布时间:2012-06-29 作者: 佚名技术 views(213)
在跨平台的开发过程中,很多问题都和编译器有关。因此我们先来聊聊编译器相关的问题 。 ★编译器的选择 首先,GCC是优先要考虑支持的,因为几乎所有操作系统平台都有GCC可用。它基本上成了 一个通用的编译器了。如果你的代码在A平台的GCC能够编译通过,之后拿到B平台用类似版本 的GCC编译,一般也不会有太大问题。因此GCC是 发布时间:2012-06-29 作者: 佚名技术 views(232)
引用(reference)是一个现有对象的别名。用对象来初始化引用之后,那么对象的名字或引用的名字都可以用于指向(refer to)该对象: int a = 12; int ra = a; --ra; // a == 11; a = 10; // ra = 10; int *ip = ra; 人们常常会将引用和指针相混淆,原因大概在于C++编译器通常采用指针的方式实现引用,但引用其实不是指针,其行为 发布时间:2012-06-29 作者: 佚名技术 views(316)
目前还有相当一部分开发人员在使用老式编译器干活,这些老式编译器可能对C++98支持 不够。因此,当你的代码移植到这些老式的编译器上时,可能会碰到一些稀奇古怪的问题( 包括编译出错和运行时错误)。下面这些注意事项有助于你绕过这些问题。 强调一下 ,后面提到的好几个条款都是通过回避C++的新语法来保证移植性。如果你 发布时间:2012-06-29 作者: 佚名技术 views(152)
Josephus定义:假设N个人编号1-N,围成圈。从1号开始报数,报到M时,此人退出,然 后继续从1开始报数,直到所有人退出为止。简单的实现是使用循环单链表,设置一个计数器 count,当count == M ,删除当前节点,并将count重置。 假设M = 9,N = 5; 这里有两处地方可以优化: 1.当MN时,取M`= M mod N,即M` = 9 % 5 = 4;报 发布时间:2012-06-29 作者: 佚名技术 views(366)
分别使用下标和指针遍历二维数组。 使用指针遍历 #include iostream using namespace std; int main() { int ia[3][4] = { // 3 个元素,每个元素是一个有4 个int 元素的数组 {0, 1, 2, 3} , // 0 行的初始化列表 {4, 5, 6, 7} , // 1 行的初始化列表 {8 发布时间:2012-06-29 作者: 佚名技术 views(193)
类型是一组操作,抽象数据类型则是一组具有某种实现的操作。当我们在某个问题的领域中识别对象时,首先考虑的问题是可以用这个对象来做什么而不是这个对象是如何实现的。因此,如果某个问题的自然描述涉及到雇员、合同和薪水记录,那么用来解决该问题的编程语言就应该包含Employee、Contract和PayrollRecord类型。这样就允许 发布时间:2012-06-29 作者: 佚名技术 views(165)
|