struct 访问成员函数 -csdn- iteye
时间: 2023-09-04 07:03:58 浏览: 57
struct是C++中的一种数据结构定义关键字,可以用来定义一个包含不同类型成员的数据结构。在struct中也可以定义成员函数。
访问struct的成员函数可以通过结构体的实例来调用。首先要创建一个结构体的实例,然后使用成员访问运算符"."来调用相应的成员函数。例如,如果有一个结构体定义为:
```
struct Person {
int age;
void setAge(int a) {
age = a;
}
void printAge() {
cout << "Age: " << age << endl;
}
};
```
可以通过以下方式来访问成员函数:
```
Person p;
p.setAge(20);
p.printAge();
```
上述代码中首先创建了一个Person类型的实例p,然后使用setAge(20)来调用成员函数setAge,将age成员变量设置为20。接着使用printAge()来调用成员函数printAge,打印出age的值。
通过结构体的实例可以直接访问成员函数,就像调用普通函数一样,只不过调用的是结构体实例的成员函数。这样可以方便地对结构体的成员进行操作和访问。
相关问题
struct 内重载+-运算符
在C++中,struct是一种用于定义数据结构的关键字,可以用来包含多个不同类型的变量。在struct中,我们可以通过重载运算符来定义和自定义数据类型之间的一些操作。
具体到-运算符,在struct中重载它可以用于执行自定义的减法操作。我们可以通过声明一个名为operator-()的函数来达到这个目的。该函数应返回一个新的struct对象,表示两个对象相减的结果。
下面是一个示例,展示了如何在struct中重载-运算符:
```
#include<iostream>
using namespace std;
struct Vector {
int x, y;
Vector(int a, int b) {
x = a;
y = b;
}
Vector operator-() {
return Vector(-x, -y);
}
};
int main() {
Vector v1(5, 10);
Vector v2 = -v1;
cout << "v1 的坐标:(" << v1.x << ", " << v1.y << ")" << endl;
cout << "v2 的坐标:(" << v2.x << ", " << v2.y << ")" << endl;
return 0;
}
```
在上面的示例中,定义了一个名为Vector的struct,它有两个成员变量x和y,表示二维向量的坐标。在Vector内部重载了-运算符,通过返回一个坐标值取负的新的Vector对象实现了向量的取负操作。
在main函数中,创建了一个Vector对象v1,并对其取负得到了v2。最后,通过输出来验证v2是-v1的结果。
通过重载-运算符,我们可以更加灵活地处理struct类型的变量之间的减法操作,使程序更加可读和易于维护。
struct成员函数
struct成员函数是在C++中定义在结构体(struct)内部的函数。与类(class)中的成员函数类似,struct成员函数可以访问结构体的成员变量,并且可以提供对结构体数据进行操作的方法。
下面是一个示例:
```cpp
#include <iostream>
struct Point {
int x;
int y;
void display() {
std::cout << "x: " << x << ", y: " << y << std::endl;
}
};
int main() {
Point p;
p.x = 1;
p.y = 2;
p.display(); // 调用结构体的成员函数
return 0;
}
```
在上面的示例中,我们定义了一个结构体`Point`,并在该结构体内部定义了一个成员函数`display()`。在`main()`函数中,我们创建了一个`Point`对象`p`,并给其`x`和`y`成员变量赋值。然后,通过调用`p.display()`来显示结构体的成员变量。
输出结果为:
```
x: 1, y: 2
```
这说明我们成功地使用了结构体的成员函数来操作结构体数据。