- 博客(12)
- 资源 (11)
- 收藏
- 关注
原创 C++ 虚基类
当一个基类被声明为虚基类后,即使它成为了多继承链路上的公共基类,最后的派生类中也只有它的一个备份。例如:class CBase { };class CDerive1:virtual public CBase{ };class CDerive2:virtual public CBase{ };class CDerive12:public CDerive1,CDerive2{ };
2013-12-08 14:36:15 669
原创 is-a与has-a的关系
is-a 是一个(种族) has-a 有一个(内含)a举例说明:如果你确定两件对象之间是is-a的关系,那么此时你应该使用继承;比如菱形、圆形、三角形和方形都是形状的一种,那么他们都应该从形状类继承而不是聚合。如果你确定两件对象之间是has-a的关系,那么此时你应该使用聚合;比如电脑是由显示器、CPU、硬盘等组成的,那么你应该把显示器、CPU、硬盘这些类聚合成电脑类,而
2013-12-08 13:42:26 1251
原创 C++ 运算符重载
1.运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用域不同类型的数据导致不同行为的发生。比如复制代码1 int i;2 int i1=10,i2=10;3 i=i1+i2;4 std::cout5 6 double d;7 double d1=20,d2=20;8 d=d1+d2;9 std::cout复制代码在这个程序里"+"既完成两个整
2013-12-06 00:55:12 714
原创 C++ 友元
我们已知道类具备封装和信息隐 藏的特性。只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员的。非成员函数能够访问类中的公有成员,但是假如将数据成员都定义 为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开 销,而影响程式的运行效率。 为了解决上述问题,提出一种使用友元的方案。
2013-12-06 00:45:44 596
原创 C++函数模板
C++提供了函数模板(function template)。所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。看下面的例子就清楚了。例4.7 将例4
2013-11-22 17:23:08 626
原创 C++内联函数
(1)什么是内联函数?内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。(2)为什么要引入内联函数?当然,引入内联函数的主要目的是:解决程序中函数调用的效率问题。另外,前面我们讲到了宏,里面有这么一个例子:#define ABS(x) ((x)>0? (x):-(x))当++i出现时,宏就会歪曲我们的意思,换句话说就是:宏的定义很容易产生二意性。我们可以看
2013-11-22 16:34:56 661
原创 C++函数默认参数
在C++中,可以为参数指定默认值。在函数调用时没有指定与形参相对应的实参时, 就自动使用默认参数。默认参数的语法与使用:(1)在函数声明或定义时,直接对参数赋值。这就是默认参数;(2)在函数调用时,省略部分或全部参数。这时可以用默认参数来代替。注意:(1)默认参数只可在函数声明中设定一次。只有在没有函数声明时,才可以在函数定义中设定。(#add ,此句意为存在函数声
2013-11-22 16:21:42 755
原创 MAC OS X 终端命令入门 (简单常用笔记)
今天小研究了一下MAC的终端命令,主要为了方便调试程序用,XCODE用不来啊。。。在这里记下。。防止丢失pwd 当前工作目录cd(不加参数) 进rootcd(folder) 进入文件夹cd .. 上级目录cd ~ 返回rootcd - 返回上一个访问的目录rm 文件名 删除c
2013-11-17 16:03:59 883
原创 C++中引用(&)的用法和应用实例
对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。在 c++学习提高篇(3)---隐式指针的文章中我详细介绍了在隐式指针&的用法,其实这两个概念是统一的。引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、
2013-11-06 12:24:45 524
原创 C++内存分区
C++程序的内纯格局通常分为4个区: 1.数据区(Data Area) 2.代码区(Code Area) 3.栈区(Stack Area) 4.堆区(即自由存储区)(Heap Area)全局变量、静态变量、常量存放在数据区,所有类成员函数和非成员函数代码存放在代码区,为运行函数而分配的局部变量、函数参数、返回数据、返回地址等存放在栈区,余下的空间
2013-11-06 11:35:12 599
原创 C++ 单例模式
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最学习设计模式,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》(DP)两本书。本文介绍单例模式的实现。单例模式也称为单件模式、单子
2013-09-07 16:23:59 621
原创 各进制转换方法
一、正数 在高速发展的现代社会,计算机浩浩荡荡地成为了人们生活中不可缺少的一部分,帮助人们解决通信,联络,互动等各方面的问题。今天我就给大家讲讲与计算机有关的“进制转换”问题。 我们以(25.625)(十)为例讲解一下进制之间的转化问题 说明:小数部份的转化计算机二级是不考的,有兴趣的人可以看一看 1. 十 -----
2013-01-27 10:22:58 1209
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人