C++中各种可调用对象深入讲解中各种可调用对象深入讲解
概述概述
一组执行任务的语句都可以视为一个函数,一个可调用对象。在程序设计的过程中,我们习惯于把那些具有复用性的一组语句
抽象为函数,把变化的部分抽象为函数的参数。
函数的使用能够极大的极少代码重复率,提高代码的灵活性。
C++中具有函数这种行为的方式有很多。就函数调用方式而言
func(param1, param2);
这儿使用func作为函数调用名,param1和param2为函数参数。在C++中就func的类型,可能为:
普通函数
类成员函数
类静态函数
仿函数
函数指针
lambda表达式 C++11加入标准
std::function C++11加入标准
下面就这几种函数展开介绍
简单函数形式简单函数形式
普通函数普通函数
这种函数定义比较简单,一般声明在一个文件开头。如下:
#include <iostream>
// 普通函数声明和定义
int func_add(int a, int b) { return a + b; }
int main()
{
int a = 10;
int b = 20;
int sum = func_add(a, b);
std::cout << a << "+" << b << "is : " << sum << std::endl;
getchar();
return 0;
}
类成员函数类成员函数
在一个类class中定义的函数一般称为类的方法,分为成员方法和静态方法,区别是成员方法的参数列表中隐含着类this指针。
#include <iostream>
class Calcu
{
public:
int base = 20;
// 类的成员方法,参数包含this指针
int class_func_add(const int a, const int b) const { return this->base + a + b; };
// 类的静态成员方法,不包含this指针
static int class_static_func_add(const int a, const int b) { return a + b; };
};
int main(void)
{
Calcu obj;
int a = 10;
int b = 20;
// 类普通成员方法调用如下