内联函数和外联函数
内联函数:定义在类体内
外联函数:定义在类体外
内联函数的特点:
调用时在调用函数处用内联函数体的代码进行替换,节省调用开销,提高运行速度。
外联函数变成内联函数的方法:
在函数头前面加上关键字inline。
class A
{
public:
A(int x, int y){X=x;Y=y;}
int a(){return X;}
int b(){return Y;}
int c();
int d();
private:
int X,Y;
};
inline int A::c()
{
return a()+b();
}
inline int A::d()
{
return c();
}
#include<iostream.h>
void main()
{
A m(3,5);
int i = m.d();
cout<<"d() return:"<<i<<endl;
}
输出:
d() return:8
函数的重载性:
class M
{
public:
M(int x, int y){X=x;Y=y;}
M(int x){X=x;Y=x*x;}
int Add(int x, int y);
int Add(int x);
int Add();
int Xout(){return X;}
int Yout(){return Y;}
private:
int X,Y;
};
int M::Add(int x, int y)
{
X=x;
Y=y;
return X+Y;
}
int M::Add(int x)
{
X=Y=x;
return X+Y;
}
int M::Add()
{
return X+Y;
}
#include<iostream.h>
void main()
{
M a(10,20),b(4);
cout<<"a="<<a.Xout()<<","<<a.Yout()<<endl;
cout<<"b="<<b.Xout()<<","<<b.Yout()<<endl;
int i=a.Add();
int j=a.Add(3,9);
int k=a.Add(5);
cout<<i<<endl<<j<<endl<<k<<endl;
}
输出:
a=10,20;
b=4,16;
30
12
10
类内函数参数的缺省值设置与一般函数相同
评论