C++中结构体可包含函数成员,支持内联和外部定义方式,能实现构造函数、成员方法等,提升封装性与可读性,功能近似类,默认访问权限为public。

在C++中,结构体(struct)不仅仅是数据的集合,它还可以像类(class)一样包含函数成员。这得益于C++作为面向对象语言的特性,struct在C++中具有与class几乎相同的功能,唯一的默认访问控制差异是struct成员默认为public。
如何在结构体中定义函数
你可以在结构体内部声明并定义函数,这些函数可以访问结构体的成员变量,就像类的成员函数一样。以下是一个简单示例:
#includeusing namespace std; struct Student { string name; int age;
// 成员函数:定义在结构体内部 void introduce() { cout zuojiankuohaophpcnzuojiankuohaophpcn "姓名: " zuojiankuohaophpcnzuojiankuohaophpcn name zuojiankuohaophpcnzuojiankuohaophpcn ", 年龄: " zuojiankuohaophpcnzuojiankuohaophpcn age zuojiankuohaophpcnzuojiankuohaophpcn endl; } // 带参数的成员函数 void setAge(int a) { if (a > 0) age = a; }};
int main() { Student s; s.name = "张三"; s.age = 20; s.introduce(); // 调用结构体中的函数 return 0; }
结构体中函数的两种定义方式
和类一样,结构体中的函数可以用两种方式定义:
立即学习“C++免费学习笔记(深入)”;
- 内联定义:直接在结构体内部写函数体,这样的函数默认是内联的(inline)。
- 外部定义:只在结构体中声明函数,在结构体外定义,需使用作用域操作符 :: 。
示例如下:
struct Calculator {
double a, b;
// 声明函数
double add();
double multiply();
};
// 在结构体外部定义函数
double Calculator::add() {
return a + b;
}
double Calculator::multiply() {
return a * b;
}
结构体函数成员的常见用途
在结构体中定义函数,可以提升代码的封装性和可读性。常见用法包括:
- 构造函数:初始化结构体成员。
- 成员方法:操作或输出结构体数据。
- 操作符重载:让结构体支持 +、== 等操作。
示例:带构造函数的结构体
struct Point {
int x, y;
// 构造函数
Point(int x_val, int y_val) : x(x_val), y(y_val) {}
// 成员函数
void show() {
cout zuojiankuohaophpcnzuojiankuohaophpcn "(" zuojiankuohaophpcnzuojiankuohaophpcn x zuojiankuohaophpcnzuojiankuohaophpcn ", " zuojiankuohaophpcnzuojiankuohaophpcn y zuojiankuohaophpcnzuojiankuohaophpcn ")" zuojiankuohaophpcnzuojiankuohaophpcn endl;
}};
基本上就这些。C++结构体中的函数成员用法灵活,合理使用能让代码更清晰、易维护。注意不要与C语言的struct混淆——C++的struct功能强大得多。











