c++++ 中有两种方法指定函数返回结构体类型:通过值返回结构体:返回结构体的副本。通过指针返回结构体:返回指向结构体实例的指针,需要手动释放内存。
C++ 中指定函数返回结构体类型的正确方式
在 C++ 中,你可以通过使用 struct 关键字来定义结构体类型,并使用 -> 运算符访问其成员。对于函数返回结构体类型,有两种主要方法:
方法 1:通过值返回结构体
立即学习“C++免费学习笔记(深入)”;
#include <iostream>
struct Point {
int x;
int y;
};
Point getPoint() {
Point p = {1, 2};
return p;
}
int main() {
Point pt = getPoint();
std::cout << pt.x << ", " << pt.y << std::endl;
return 0;
}
方法 2:通过指针返回结构体
#include <iostream>
struct Point {
int x;
int y;
};
Point* getPoint() {
Point* p = new Point();
p->x = 1;
p->y = 2;
return p;
}
int main() {
Point* pt = getPoint();
std::cout << pt->x << ", " << pt->y << std::endl;
delete pt; // 释放动态分配的内存
return 0;
}
实战案例:计算两点之间的距离
#include <iostream>
#include <cmath>
struct Point {
int x;
int y;
};
double distance(Point p1, Point p2) {
return std::sqrt(pow(p2.x - p1.x, 2) + pow(p2.y - p1.y, 2));
}
int main() {
Point p1 = {1, 2};
Point p2 = {4, 5};
std::cout << "两点之间的距离为:" << distance(p1, p2) << std::endl;
return 0;
}