目录
默认参数
1.默认参数最好在头文件添加,以便提供头文件时可以告知使用者 |
2.含有默认参数的函数实现时不要填写默认值 |
3.默认参数只能从最右侧变量依次赋值(填写默认值的参数右侧不能有无默认值参数) |
头文件书写方式
int f(int a, int b = 0);
//int fun(int a, int b = 0; int c);//错误,参数b后面有无默认值的变量c
cpp实现方式
//int f(int a, int b=0) //错误,函数实现不能填写默认值
int f(int a, int b) //正确
{
return a+b;
}
内联函数
内联函数其实是在编译阶段将函数体复制到引用代码引用处,以空间换时间(增加代码雍总的方式提高程序运行效率)
1.内联函数以inline声明 |
2.inline函数可以在头文件实现 |
3.inline函数在头文件中实现时是声明,而非定义 |
4.类函数在类内实现时,默认就是inline函数 |
5.在头文件中,类外实现类成员函数时,加上inline,仍为inline函数 |
1.inline函数在头文件中书写方式(a.h)
inline int f(int a) //此时inline函数相当于函数声明
{
return a;
}
2.C++类函数在类内实现时,默认就是inline函数
class A
{
public:
A(int a, int b){ _a = a; _b = b; cout << " A() " << endl;}//此时为内联函数
void printf(void) { cout << "A::printf() " << endl;} //此时为内联函数
int sum(void);
private:
int _a;
int _b;
};
int A::sum(void)//因为在类外实现,所以不是内联函数
{
return _a + _b;
}
int main()
{
A a(10, 20);
a.sum();
return 0;
}
3.头文件类外实现函数,加上inline仍为inline函数
class A
{
public:
A(int a, int b){ cout << "A() " << endl; }
int sum(void);
private:
int _a;
int _b;
};
inline int A::sum(void) //虽然在类外,但在头文件中实现,且添加了inline,此时的sum仍为inline函数
{
return _a + _b;
}