当前位置:首页C++程序设计 > 正文

结构体代码演示

作者:野牛程序员:2023-03-21 09:27:11C++程序设计阅读 2357
#include<iostream>
using namespace std;
struct Point {
	int x, y;
	Point(int x=0, int y=0):x(x),y(y) {}
};
Point operator + (const Point& A, const Point& B) {
	return Point(A.x+B.x, A.y+B.y);
}
ostream& operator << (ostream &out, const Point& p) {
	out << "(" << p.x << "," << p.y << ")";
	return out;
}
int main() {
	Point a, b(1,2);
	a.x = 3;
	cout << a+b << "\\n";
	return 0;
}

上面的代码多数可以“望文知义”。结构体Point中定义了一个函数,函数名也叫Point,但 是没有返回值。这样的函数称为构造函数(ctor)。构造函数是在声明变量时调用的,例 如,声明Pointa,b(1,2)时,分别调用了Point( )和Point(1,2)。注意这个构造函数 的两个参数后面都有“=0”字样,其中0为默认值。也就是说,如果没有指明这两个参数的 值,就按0处理,因此Point( )相当于Point(0,0)。“:x(x),y(y)”则是一个简单的写 法,表示“把成员变量x初始化为参数x,成员变量y初始化为参数y”。也可以写成: Point(intx=0,inty=0){this->x=x;this->y=y;} 这里的“this”是指向当前对象的指针。this->x的意思是“当前对象的成员变量x”,即 (*this).x。

提示5-8:C++中的结构体可以有一个或多个构造函数,在声明变量时调用。 提示5-9:C++中的函数(不只是构造函数)参数可以拥有默认值。 提示5-10:在C++结构体的成员函数中,this是指向当前对象的指针。 接下来为这个结构体定义了“加法”,并且在实现中用到构造函数。这样,就可以用a+b 的形式计算两个结构体a和b的“和”了。 最后,定义这个结构体的流输出方式,然后就可以用cout << p来输出一个Point结构体p

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击