下面我就来为您详细讲解C++中类的成员函数及内联函数使用及说明的攻略。
类成员函数的定义
在C++中,类的成员函数可以在类的定义中进行声明,并在类外定义函数实现。类成员函数的定义格式如下:
class ClassName {
public:
ReturnType functionName(ParameterList);
//...
};
ReturnType ClassName::functionName(ParameterList) {
//...
}
其中,ClassName
是类名,ReturnType
是函数返回值类型,functionName
是函数名,ParameterList
是参数列表。
可以在类内声明并实现类成员函数,这种函数称为内联函数。内联函数会直接在编译期间将函数调用展开成实际的代码,从而提高了函数的执行效率。
内联函数的定义
内联函数的定义需要在函数前添加关键字inline
,如下所示:
class ClassName {
public:
inline ReturnType functionName() {
//...
}
// ...
};
需要注意的是,内联函数的定义必须放在类的头文件中,因为内联函数的实现需要在编译期展开成实际的代码,而头文件在编译期才会被引入的源文件中。
类成员函数的调用
调用类成员函数时需要使用.
或->
运算符,.
用于访问对象的成员,->
用于访问指向对象的指针的成员。
例如,如下的示例演示了如何使用类成员函数:
#include<iostream>
using namespace std;
class Rectangle {
public:
int width, height;
int area() { return width * height; }
};
int main() {
Rectangle rect;
rect.width = 10;
rect.height = 20;
cout << "The area of the rectangle is: " << rect.area() << endl;
return 0;
}
上面的示例中,定义了一个名为Rectangle
的类,其中有两个成员变量width
和height
,以及一个计算面积的成员函数area()
。在main()
函数中,声明了一个名为rect
的Rectangle
类型对象,并给rect
的width
和height
赋值,最后调用area()
函数来计算rect
的面积。程序执行结果如下:
The area of the rectangle is: 200
此外,如果我们要使用指向对象的指针来访问对象的成员函数,可以使用->
运算符。例如,下面的代码演示了如何使用指针调用类成员函数:
Rectangle* rectPtr = new Rectangle;
rectPtr->width = 10;
rectPtr->height = 20;
cout << "The area of the rectangle is: " << rectPtr->area() << endl;
示例说明
接下来,我将通过两个示例来演示类成员函数的使用以及内联函数的使用。
示例1:使用类成员函数统计数组中元素出现次数
下面的示例展示了如何使用类成员函数来统计数组中元素的出现次数:
#include<iostream>
using namespace std;
class Array {
public:
int arr[10];
Array(int* data) {
for (int i = 0; i < 10; i++) {
arr[i] = data[i];
}
}
int count(int number) {
int cnt = 0;
for (int i = 0; i < 10; i++) {
if (arr[i] == number) {
cnt++;
}
}
return cnt;
}
};
int main() {
int data[] = { 1, 2, 3, 4, 2, 3, 2, 4, 5, 6 };
Array arr(data);
int count = arr.count(2);
cout << "The number 2 appears " << count << " times in the array." << endl;
return 0;
}
在上面的示例中,定义了一个名为Array
的类,其中有一个成员变量arr
,表示存储整数数组的数据成员。在类的构造函数中,使用传入的数组初始化arr
成员变量的值。然后,定义了count()
成员函数,用于计算数组中某个整数元素出现的次数,并在main()
函数中调用count()
函数来统计数组中2出现的次数。
输出结果如下:
The number 2 appears 3 times in the array.
示例2:使用内联函数交换两个变量的值
下面的示例演示了如何使用内联函数来使用引用交换两个变量的值:
#include<iostream>
using namespace std;
class Swap {
public:
inline void swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
};
int main() {
int a = 10, b = 20;
cout << "Before swaping: a=" << a << ",b=" << b << endl;
Swap s;
s.swap(a, b);
cout << "After swaping: a=" << a << ",b=" << b << endl;
return 0;
}
上面的示例定义了一个名为Swap
的类,并在该类中定义了一个内联函数swap()
,用于交换两个整数变量的值。在主函数main()
中,定义了两个变量a
和b
,输出交换之前的值。然后声明一个Swap
对象s
,调用swap()
成员函数交换a
和b
的值,并输出交换之后的值。
输出结果如下:
Before swaping: a=10,b=20
After swaping: a=20,b=10
希望对您有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++中类的成员函数及内联函数使用及说明 - Python技术站