我们知道声明 int a=1;可以做a++这样的操作,在这个过程中,a是不断变化的。指针同样也可以,因为指针是一个变量。但是如果是数组名就不可以了,因为数组名是一个常量。例如: int a=1; a++; 这是正确的; int *p=&a; cout<<*(p++)<<endl; 这也是正确的;但是 int a[10]; cout<<*(a++)<<endl; 这是错误的,因为数组名a在不断的变化,但他是一个常量。但是可以改为: int a[10]; int i; for(i=0;i<10;i++) cout<<*(a+i)<<endl;我们再来看一个例子...
 一 函数重载    C++允许功能相近的函数在相同的作用域内以相同的函数名声明,从而形成重载。方便使用,便于记忆。例: 参数类形不同: int add(int x,int y); float add(float x,float y); 参数个数不同: int add(int x,int y); int add(int x,int y,int z);注意: 重载函数的形参必须不同:个数不同或类型不同。 编译程序将根据实参和形参的类型及个数的最佳匹配来选择调用哪个函数。 int add(int x,int y); int add(int a,in...
代码一:带缺省参数的构造函数#include<iostream.h>#include<math.h>class complex{private: double real; double imag;public: complex(double r=0.0,double i=0.0) { real=r; imag=i; } double realcomplex(){ return real;} double imagcomplex(){ return imag;} double abscomplex(){double t; t=real*real+imag*imag; return sp...
  前一篇文章我可知道了调用函数时系统的运行状态。他要保存调用函数的运行状态,被调函数的返回地址,还有其他一些内容,当释放空间又一次运行,这样就消耗内存和时间。如果说对于一个函数多次被调用那这样做是值得的,但是如果一个被调函数在整个程序中只调用了一次,这样做就有些得不尝失了。为此我们引入内联函数。内联函数的运行就不存在这种情况了。程序在运行时遇到调用函数时用函数体(也就是内联函数)代替,这样就节省参数传递,控制转移等开销。   需要注意的是: 内联函数内不能有循环语句和switch语句。 内联函数的声明必须在其被第一次调用之前。 对内联函数不...
   我们来讨论一下系统是怎么调用一个函数的。先看一个例子。1   void funa(int ,int)2   void funb(int)34   void main()5   {6   int a=10,int b=20;7   funa(a,b);89   void funa(int aa,int bb)10  {11 int n=5;12 ...13 ...14 funb(n);15  }16 ...
我们要交换两个数,其程序如下:void main(){ int x(2),int y(4); cout<<"x-"<<x<<"   y="<<y<<endl; int t; t=x; x=y; y=t; cout<<"x="<<x<<"   y="<<y<<endl; return 0;}其结果输出为:x=2   y=4       x=4   y=2但是我们如果有很多数需要交换,是不是每次都写一次上面的程序呢,这我们就引入了调用函数。其程序如下:void main(){ int x(2),int y(4);...