如果指针作为形参,要注意是否希望这个指针作为返回值返回。例如,在链表的插入函数中void Insert(Node *head,Node *x);当head == NULL时,我们希望令head = x,此时实际上只改变了head的副本,head并没有改变,因此正确的函数原型应该是void Inser...
分类:
其他好文 时间:
2014-08-08 11:59:15
阅读次数:
200
编写函数的声明,令其接受两个int形参并且返回类型也是int;然后声明一个vector对象,令其元素是指向该函数的指针。编写4个函数,分别对两个int值执行加、减、乘除运算。#include#include#includeusing namespace std;int plus1(int x,int...
分类:
其他好文 时间:
2014-08-07 22:54:45
阅读次数:
278
函数指针函数指针指向的是函数而非对象。和其他指针一样,函数指针指向某种特定类型。函数的类型由它的返回类型和形参类型共同决定,与函数名无关。例如://比较两个string对象的长度bool lengthCompare(const string&,const string&);该函数的类型是bool(c...
分类:
其他好文 时间:
2014-08-07 21:33:40
阅读次数:
251
函数重载如果同一作用域内的几个函数名字相同但形参列表不同,我们称之为重载函数。例如:void print(const char *cp);void print(const int *beg,const int *end);void pring(const int ia[],size_t size);...
分类:
其他好文 时间:
2014-08-07 00:18:27
阅读次数:
542
1、构造函数特征: 1)与类名同名。 2)无函数返回类型说明。 3)主要是完成对象的初始化。 4)当一个新的对象被建立时(a.在对象的说明语句中 b.用new函数新建一个动态对象时),系统自动调用其相应的构造函数。 5)可有多个构造函数(重载):多个构造函数的函数名相同,但是其形参在数据类...
分类:
编程语言 时间:
2014-08-06 01:49:30
阅读次数:
238
数组的两个特殊性质对我们定义和使用作用在数组上的函数有影响,这两个性质分别是:不允许拷贝数组以及使用数组时(通常)会将其转换成指针。因为不能拷贝数组,所以我们无法以值传递的方式使用数组参数。因为数组会被转换成指针,所以当我们为函数传递一个数组时,实际上传递的是指向数组首元素的指针。尽管不能以值传递的...
分类:
其他好文 时间:
2014-08-06 01:47:30
阅读次数:
220
当形参是const时,必须要注意关于顶层const的讨论。如前所述,顶层const的作用于对象本身:const int ci=42; //不能改变ci,const是顶层的int i=ci; //正确:当拷贝ci时,忽略了它的顶层constint *const p=&i; //const是顶层的,不....
分类:
其他好文 时间:
2014-08-06 01:18:40
阅读次数:
378
最近在迁移公司的make系统到cmake上,发现cmake的function参数很奇怪。例如,如果我们向一个function传递list作为参数,在function中,形参会变成如下状况:
set(SRC)
list(APPEND SRC a.cpp b.cpp)
list(APPEND SRC c.cpp d.cpp)
function(tst_arguments src_list)
me...
分类:
其他好文 时间:
2014-08-05 03:05:18
阅读次数:
317
#include
void print_array_test(char ca[])
{
printf("ca : %s\n",ca);
printf("&ca : %s\n",&ca);
printf("&(ca[0]) : %s\n",&(ca[0]));
printf("&(ca[1]) : %s\n",&(ca[1]));...
分类:
编程语言 时间:
2014-08-04 17:39:17
阅读次数:
249
变量:局部变量:如上所有的变量都是局部变量:把在函数体中定义的变量称为局部变量。形参也是局部变量:唯一的区别是形参用实参的值初始化,而普通局部变量需要动手赋值。变量的声明周期:从定义这个变量的地方开始到函数结束。作用域(访问范围):定义这个变量开始到这个函数结束。自动存储期限static 修饰符 s...
分类:
其他好文 时间:
2014-08-02 12:24:43
阅读次数:
192