用Xcode来写C++程序[4] 函数
此节包括引用函数,内联函数,防止修改函数入参,函数自身带有默认值.
引用函数:防止复制对象,减少系统开销
内联函数:编译的时候根据具体情形将代码嵌入进去,成不成功编译器说了算,减少系统开销提升性能
引用函数(防止篡改初始值的入参声明方式):防止修改数据源
函数参数带有默认值:函数的某个参数可以给定默认值,精简函数的使用
最简单的函数
#include <iostream>
using namespace std;
int addition (int a, int b) {
return a + b;
}
int main () {
int z;
z = addition (5,3);
cout << "The result is " << z << endl;
}
打印结果
The result is 8
Program ended with exit code: 0
传递引用( int& 表示 )
#include <iostream>
using namespace std;
void duplicate (int& a, int& b, int& c) {
a *= 2;
b *= 2;
c *= 2;
}
int main () {
int x = 1, y = 3, z = 7;
duplicate (x, y, z);
cout << "x=" << x << ", y=" << y << ", z=" << z << endl;
return 0;
}
打印结果
x=2, y=6, z=14
Program ended with exit code: 0
防止篡改数据源(const 修饰变量)
#include <iostream>
#include <string>
using namespace std;
string concatenate (const string& a, const string& b) {
return a + b;
}
int main () {
string x = "You";
string y = "XianMing";
cout << concatenate(x, y) << endl;
return 0;
}
打印结果
YouXianMing
Program ended with exit code: 0
内联函数(减少函数调用开销)
#include <iostream>
#include <string>
using namespace std;
inline string concatenate (const string& a, const string& b) {
return a + b;
}
int main () {
string x = "You";
string y = "XianMing";
cout << concatenate(x, y) << endl;
return 0;
}
打印结果
YouXianMing
Program ended with exit code: 0
带默认值的函数(如果不赋值,则有一个默认值)
#include <iostream>
using namespace std;
int divide (int a, int b = 2) {
int r;
r = a / b;
return (r);
}
int main () {
cout << divide (12) << endl;
cout << divide (20, 4) << endl;
return 0;
}
打印结果
YouXianMing
Program ended with exit code: 0
函数先声明,后使用
#include <iostream>
using namespace std;
void odd (int x);
void even (int x);
int main() {
int i;
do {
cout << "Please, enter number (0 to exit): ";
cin >> i;
odd (i);
} while (i!=0);
return 0;
}
void odd (int x)
{
if ((x%2)!=0) cout << "It is odd.\n";
else even (x);
}
void even (int x)
{
if ((x%2)==0) cout << "It is even.\n";
else odd (x);
}
递归调用
#include <iostream>
using namespace std;
long factorial (long a) {
if (a > 1)
return (a * factorial (a-1));
else
return 1;
}
int main () {
long number = 9;
cout << number << "! = " << factorial (number);
return 0;
}
打印结果
9! = 362880
Program ended with exit code: 0