- 浏览: 76513 次
- 性别:
- 来自: 北京
最近访客 更多访客>>
最新评论
-
eric_weitm:
在效率本身上而言,引用也有优势。另外,在编译器实现时,指针的传 ...
C++中的 引用和指针区别
文章列表
一、多态性
派生类对象可以替代基类对象为基类的引用初始化或赋值。
函数的多态性其实就是对函数不同形式的声明的一种灵活应用。比如说,我们同名不同参数的函数就是对函数的一种多态性表现;同名同参就是函数的覆盖;如果我们用不同类型的参数和个数来声明不同或相同的函数,那么程序会根据我们调用实参的个数和类型进行匹配调用之前声明的函数模型,进行运算求值。
二、虚函数
在类的继承层次结构中,在不同的层次中可以出现同名同参(类型、个数)都相同的函数。在子类中调用父类的成员方法,可以使用子类对象调用时使用父类的作用域实现。
虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以 ...
结构体struct是C语言中用来封装类似于类的模块。
因为C++设计时定下的一项原则:必须完全兼容C语言,所以就允许C++下使用结构体类型了,并且在C++中的结构体类型支持成员函数。在此基础上扩展了面向对象思想,有了Class类,其实作用和原理都等同与结构体类型struct。
什么时候用struct什么时候用class呢?
如果希望成员是公用的,使用struct比较方便,如果希望部分成员私有,宜用class。建议尽量使用class来建立类,符合C++风格。
共用体(union)
一、 基础概念
有时需要使几种不同类型的变量存放在同一段内存单元中。虽然在同一段内存中不同数据类型所占字节数不同,但都从同一地址开始存放,也就是使用了覆盖技术,几个变量互相覆盖。这种使几个不同的变量共占一段内存的结构,称为共同体类型的结构(也称为联合类型)。
二、 声明共用体类型的一般形式:
union 共用体类型名
{
成员表列
};
定义共用体变量的一般形式:
共用体类型名 共用体变量名;
也可以在声明共用体类型的同时定义共用体变量,也可以没有共用体类型名直接定义共用体变量。
union data
{
int i;
char ...
动态内存分配和撤销方式剖析
在C语言中是利用库函数malloc和free来分配和撤销内存空间的。C++提供了运算符new和delete来取代malloc和free函数。注意:new和delete是运算符,不是函数,因此执行效率高。虽然与C语言兼容,C++仍保留malloc和free函数,建议使用new和delete运算符,不要用malloc和free函数。
New运算符一般格式:new 类型 [初值]
用new分配数组空间时不能指定初值。如果由于内存不足等原因无法正常分配空间,则new会返回一个空指针NULL,可以根据该指针的值判断分配空间是否成功。
Delete运算符一般格式:
...
指向结构体变量的指针与链表结构的关系应用
1、 一个结构体变量的指针就是该变量所占据的内存段的起始地址。可以设一个指针变量,用来指向一个结构体变量,此时该指针变量的值是结构体变量的其实地址。指针变量 ...
自定义数据类型
一、结构体类型
1、 C++允许用户自己定义一组包含若干个类型不同(或相同)的数据项的数据类型,称为结构体。
2、 声明符号:struct
3、 一般形式:struct 结构体类型名{成员表列};
4、 结构体类型名用来作结构体类型的标志。
5、 结构体中的每个成员也称为结构体中的一个域。成员表列又称为域表。
6、 声明结构体类型的位置一般在文件的开头,在所有函数之前。
7、 C++提供了类类型,所以在一般情况下,不必使用带函数的结构体。
二、结构体类型变量的定义方法及其初始化
1、 定义结构体类型变量的方法:
a) 先声 ...
C++——指针复习
一、基本概念
1、 内存存储原理
如果在程序中定义一个变量,在编译时就给这个变量分配内存单位。系统根据程序中定义的变量类型,分配一定长度的空间。例如,C++编译系统一般为整形变量分配4个字节 ...
1、 连接函数strcat
其函数原型为:strcat(char [ ], const char [ ] );
strcat是string catenate(字符串连接)的缩写。该函数有两个字符数组的参数,函数的作用是:将第二个字符数组中的字符串连接到前面字符数组的字符串的后面。第二个自负数组被指定为const,以保证该数组中的内容不会在函数调用期间修改。连接后的字符串放在第一个字符数组中,函数调用后得到的函数值,就是第一个字符数组的地址。
例如:
#include<iostream>
usingnamespace std;
int
main()
{
cha ...
二维数组的定义和引用
一、相关定义
1、具有两个下标的数组称为二维数组。
2、一般形式:
类型标识符 数组名[常量表达式][常量表达式]
例如:float a[3][4], b[5][6];
3、二维数组的排列顺序:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。【多维数组元素在内存中的排列顺序:第一维的下标变化最慢,最右边的下标变化最快】
4、二维数组的引用
数组名[下标][下标]
数组元素是左值,可以出现在表达式中,也可以被赋值。
注意:在使用数组元素时,应该注意下标值应在已定义的数组大小的范围内。
定义一个三行四列的整型二维数组:int a[3] ...
C++复习——数组
一、相关概念
1、具有相同属性有内在联系的一批数据看作一个有机的整体,称为数组。
2、数组中用序号或下表来区分各个数据,用来表示该数据在数中的序号,称为下标(数组元素的标识符);数组中的数据称为数组元素。
3、引用数组的好处:引入数组就不需要在程序中定义大量的变量,大大减少程序中变量的数量,使程序精炼,而且数组含义清楚,使用方便,明确地反映了数据间的联系。许多好的算法都与数组有关。熟练地利用数组,可以大大地提高编程和解题的效率,加强了程序的可读性。
二、一维数组的定义和引用
1、定义格式:
类型标识符 数组名[常量表达式]
例如:inta[10]
说明 ...
引用是C++中的概念,初学者容易把引用和指针混淆一起。
一下程序中,n是m的一个引用(reference),m是被引用物(referent)。
int m;
int &n = m;
n相当于m的别名(绰号),对n的任何操作就是对m的操作。
所以n既不是m的拷贝 ...
在编程行业有句老话,大意是:“只要多添加一个间接层,计算机科学中就没有解决不了的问题。”间接这个词的含义很简单——不在代码中直接使用某个值,而是使用指向该值的指针。下面是一个真是的例子:你可能不知道自 ...
Objective-C学习之路
在Objective-C中,小写字母和大写字母是不同的,即区分大小写。
注释:单行注释://
块注释:/*……*/
注意:注释不能嵌套使用。
换行符:\n
输出操作:NSLog(@”内容”);
类、对象和方法
什么是对 ...
布尔类型
许多语言都有布尔(Boolean)类型,当然这是个专用术语,指的是存储真值和假值的变量。Objective-C也不例外。
C语言拥有布尔数据类型bool,它具有true值和false值。Objective-C提供了相似的类型BOOL,它具有YES值和NO值。 ...
使用#import导入了Foundation框架的主头文件后,就可以开始利用Cocoa特性编写代码了。Hello Objective-C中的第一行实际代码使用了NSLog()代码,如下所示:
NSLog(@”hello , Objective-C !”);
此代码可向控制台输出”hello , Objective-C !”。如果你使用过C语言,那么一定遇到过printf(),而NSLog()这个Cocoa函数的作用和printf()很相似。
和Printf()一样,NSLog()接受一个字符串作为其第一个参数,该字符串可包含格式说明符(如%d)。此函数还可以接受匹配格式说明符 ...