16.53 编写你自己版本的print函数,并打印一个、两个及五个实参来测试它,要打印的每个实参都应有不同的类型。#include#includeusing namespace std;template ostream& print(ostream &os,const T &t){ osost...
分类:
其他好文 时间:
2014-09-02 00:03:23
阅读次数:
206
16.47 编写你自己版本的翻转函数,通过调用接受左值和右值引用参数的函数来测试它。#include#include#includeusing namespace std;template int compare(const T &a ,const T &b){ if(aauto sum(T ...
分类:
其他好文 时间:
2014-09-01 22:21:03
阅读次数:
206
1. 用数组包裹实参
“用数组包裹实参”的做法可以分成三步:首先,为这个方法定义一个数组型的参数;然后在调用时,生成一个包含了所有要传递的实参的数组;最后,把这个数组作为一个实参传递过去。
这种做法可以有效的达到“让方法可以接受个数可变的参数”的目的,只是调用时的形式不够简单。
J2SE 1.5中提供了Varargs机制,允许直接定义能和多个实参相匹配的形参。从而,可以用一种更简单的方式...
分类:
其他好文 时间:
2014-09-01 10:46:03
阅读次数:
144
看一个程序#include using namespace std;class A{public: virtual void Fun(int number = 10) { std::cout B,非A,缺省实参是编译时候确定的=>10,非20 输出:B::Fun with number 10条款.....
分类:
其他好文 时间:
2014-08-31 18:28:01
阅读次数:
217
拷贝构造函数被调用的时机:1.当用类的一个对象去初始化该类的另一个对象(或引用)时系统自动调用拷贝构造函数实现拷贝赋值。2.若函数的形参为类对象,调用函数时,实参赋值给形参,系统自动调用拷贝构造函数。3.当函数的返回值是类对象时,系统自动调用拷贝构造函数。需要注意的是,赋值并不会调用复制构造函数,赋...
分类:
其他好文 时间:
2014-08-30 22:55:50
阅读次数:
243
1.常对象
类名 const 对象名[实参表列];
const 类名 对象名[实参表列];
对象被声明为常对象,则不能调用该对象的非const型的成员函数;
常成员函数可以访问常对象中的数据成员,但是不允许修改你常对象中的数据成员的值。
如果一个对象被声明为常对象,只能用指向常对象的指针指向它,而不能用一般的(指向非const型变量的)指针变量...
分类:
其他好文 时间:
2014-08-28 11:30:29
阅读次数:
247
函数的参数传递定义:在调用一个函数时,将实参传递给形参。 C++中函数的参数传递有按值传递、地址传递和引用传递3种方式。注意:地址也是一种值,按值传递和按地址传递都是单向的值传递方式,即形参都不会回传给实参。但是由于地址的特殊性,地址传递可以间接地改变实参的值,所以分开讨论。一、按值传递 函...
分类:
其他好文 时间:
2014-08-28 09:38:51
阅读次数:
339
我们先看第一个括号里边的内容:function($){….},这不就是一个匿名的函数吗?但是它的形参比较奇怪,是$,这里主要是为了不与其它的库冲突。这样我们就比较容易理解第一个括号内的内容就是定义了一个匿名函数,我们在调用函数的时候,都是函数名后边加上括号以及实参,但是由于操作符的优先级我们定义的匿...
分类:
Web程序 时间:
2014-08-27 20:16:48
阅读次数:
204
指针是C/C++的强大工具,但也是最容易出错的地方。C++在函数调用时支持三种方式:赋值传递,引用传递,指针传递。1.赋值传递是在函数调用栈内创建临时对象,并将实参对象复制到临时对象,函数内部只能操作实参对象的副本。这种方式对于基本类型倒无所谓,但是对于庞大的类对象,则会带来很大的调用代价。2.引用...
分类:
其他好文 时间:
2014-08-27 17:59:28
阅读次数:
227