结构体代码演示
作者:野牛程序员: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