在本章中,我们将学习:
- 在类内部定义成员函数
- 在类之外定义成员函数
- 成员函数的特征
- 内联成员函数
我们知道一个类具有数据成员和成员函数。在本章中,我们将学习如何声明成员函数以及初始化它们的不同方法。
会员功能介绍:
在类内部定义的函数称为“成员函数”。这些成员函数可以无限制地访问类中的私有数据成员。
成员函数可以在类内部或类外部定义。
1.在类中定义成员函数
成员函数可以在类内部定义。然后,这些函数默认为内联成员函数。
需要注意的一点是,如果要在创建对象后访问成员函数,则需要将它们定义为“公共”访问说明符。
在类内部定义的函数示例:
class Example { public: void member_function_defined_inside_class() { cout<<"Hi from member_function_defined_inside_class"<<endl; } };
2.在类之外定义成员函数
也可以在类外部定义函数。在这种情况下,我们遵循以下几点:
- 我们在类内部编写函数声明。
- 在类外定义函数时,我们使用范围解析运算符“ ::”。
- 函数名称之前是类名称和范围解析运算符。
句法:
<function_return_type> <class_name>:: <function_name>
例:
class Example { public: void member_function_defined_outside_class(); }; void 例::member_function_defined_outside_class() { cout<<"Hi from member_function_defined_outside_class"<<endl; }
如何调用成员函数?
我们可以通过创建类对象来调用成员函数。
例:
/* * File : member_function_example.cpp * Author : [email protected] * Copyright: @ 前开发者教程.com */ #include<iostream> using namespace std; class Example { public: void member_function_defined_inside_class() { cout<<"Hi from member_function_defined_inside_class"<<endl; } void member_function_defined_outside_class(); }; void 例::member_function_defined_outside_class() { cout<<"Hi from member_function_defined_outside_class"<<endl; } int main() { Example e1; e1.member_function_defined_inside_class(); e1.member_function_defined_outside_class(); }
输出:
Hi from member_function_defined_inside_class Hi from member_function_defined_outside_class
成员函数的特征
- 成员函数定义为私有,因此无法在类外部使用对象进行访问。
- 非静态成员函数必须通过对象进行访问。
- 在不同的类中可以有相同名称的成员函数。
- 一个成员函数可以访问另一个成员函数而无需创建对象。
4.内联成员函数
内联成员函数将用实际的函数定义替换函数调用。因此,防止了函数调用和函数返回开销。
建议将功能最少的功能用作内联。当在编译时替换函数定义代替函数调用时,程序大小趋于增加。由于是编译时间,因此我们无法针对库函数执行此操作。
默认情况下,在一个类中定义的所有成员函数都是内联成员函数。
句法:
inline return_type class_name::function_name(arguments) { //statements; }
在类外部定义的内联成员函数的示例。
/* * File : inline_member_function_example.cpp * Author : [email protected] * Copyright: @ 前开发者教程.com */ #include<iostream> using namespace std; class Example { public: void inline_member_function_defined_outside_class(); }; inline void 例::inline_member_function_defined_outside_class() { cout<<"Hi from inline_member_function_defined_outside_class"<<endl; } int main() { Example e1; e1.inline_member_function_defined_outside_class(); }
输出:
Hi from inline_member_function_defined_outside_class
该网站上可用的教程列表:
C编程20+章 | C ++编程80+章 |
100多个编码问题 | 数据结构和算法85+章 |
系统设计20+章 | Shell脚本编写12章 |
4g LTE 60+章节 | 最常见的编码问题 |
5G NR 50+章 | Linux系统编程20+章 |