如果我们每次都必须显式的指明模板替换参数类型,例如concat(s, 3),那么过程将会显得非常繁琐。
如果我们可以concat(s, 3)//之前必须声明s是std::string类型,那么将会向普通的函数调用一样简单,
事实上,C++是允许这样的写法,然后C++编译器会根据实参(s和3)的类...
分类:
其他好文 时间:
2014-11-09 13:55:11
阅读次数:
285
#include
#include
#if 0
// 默认使用法4
// 法1
int strlen(const char* str)
{
int n;
// const char *p = str; //测试这句,这个语句不需要,因为我实参是指针,形参指针改变指向不影响实参指向
for(n = 0; *str != '\0'; n++)
{
str++;
}
return...
分类:
编程语言 时间:
2014-11-08 00:56:24
阅读次数:
307
转自:http://www.tootei.net/archives/471目录1. 函数概述1.1 函数与对象1.2 函数的创建1.3 参数1.3.1 形参与实参1.3.2 Aruments 对象1.4 调用1.4.1 函数的调用者1.4.2 函数的所有者1.4.3 函数的动态调用2. 执行上下文栈...
分类:
编程语言 时间:
2014-11-02 19:28:54
阅读次数:
350
今天闲着没事实现了一下数据结构里面的顺序表,在顺表初始创建的时候遇到了这样一个问题。
#include
#include
#define MaxSize 1000
#define ElemType int
typedef struct
{
ElemType data[MaxSize];
int length;
}SqList;
int isListEmpty(SqLis...
分类:
其他好文 时间:
2014-10-30 00:24:36
阅读次数:
224
前面我们看到由一个实参调用的非显式构造函数定义了一种隐式的类型转换,这种构造函数将实参类型的对象转换成类类型。我们同样能定义对于类类型的类型转换,通常定义类型转换运算符可以做到这一点。转换构造函数和类型转换运算符共同定义了类类型转换,这样的转换有时也被称作用户定义的类型转换。类型转换运算符类型转换运...
分类:
其他好文 时间:
2014-10-29 09:06:41
阅读次数:
150
一个定义良好的API,应该包含了使用该方法的前置条件和后置条件。然而,程序运行的环境是复杂的,程序在执行过程中可能遇到各种错误。为此,源代码要为可能遇到错误做一些准备。编程时要预见到:方法执行时可能会遇到意外情况。错误的根源,可能是不恰当的外部环境,可能是方法调用者传递了不恰当的实参——即错误环境或非法参数。...
分类:
其他好文 时间:
2014-10-27 00:28:39
阅读次数:
198
一:函数和指针关系: 1)指向函数的指针 2)指针作为函数的参数 int max(int *p1,int *p2){ } 1)实参可以是一个指针 2)也可以是一个和形参类型相同的数组的数组名 3)返回值是指针的函数: 指针函数 char* 函数名(){ return 地址 ...
分类:
编程语言 时间:
2014-10-25 22:46:29
阅读次数:
251
函数是一个可以被调用和执行任意次的程序片段。JavaScript函数是参数化的:函数的定义会包括一个称为形参的标识符列表,这些参数在函数体中像局部变量一样工作。函数调用会为形参提供实参的值。函数使用它们实参的值来计算返回值。函数使用它们实参的值来计算返回值,成为该函..
分类:
编程语言 时间:
2014-10-22 16:03:29
阅读次数:
175
argument:实参 attribute:属性 base class:基本类 block:块 character:字符 class:类 comment:注释 complex number:复数 derived class:导出类 dictionary:字典 escape sequence:转义符 exception:异...
分类:
编程语言 时间:
2014-10-22 14:46:49
阅读次数:
187
1:形参:是一个变量,它作用域在于本函数,实参:是一个表达式,它是给形参初始化的 2:对于需要改变实参内容时,c++偏向于使用引用,即给其取别名;在调用时初始化。 3:引用变量,定义时必须初始化,但是对于是形参时,应该理解成,在调用时才进行初始化的,故而没有定义时就确定;类似的还有常量形参。 4:c...
分类:
其他好文 时间:
2014-10-22 09:58:01
阅读次数:
150