8.2 Point对象

最后更新于:2022-04-01 06:21:36

作为一个复合结构的简单例子,可以考虑数学中点的概念。在一个层面上,点是我们以之作为一个对象的两个数字,即坐标。在数学符号中,点用括号中以逗号分隔的坐标表示。例如,(0,0)表示原点,(x,y)表示该点从原点起向右x个单位,向上y个单位。 在C++中,点可以很自然地以两个double表示。那么,问题是如何把这两个值组合成一个复合对象或结构呢?答案是**结构体**定义: ~~~ struct Point { double x, y; }; ~~~ 结构体定义出现在任何函数定义的外面,通常是在程序的开头(include语句之后)。 该定义表明,这个结构中体中有两个元素,分别命名为x和y。这些元素称为**实例变量**,原因我稍后将作出解释。 忘掉结构体定义末尾的分号是一种常见错误。在大括号之后放置一个分号可能很奇怪,但你会习惯的。 定义了新的结构体之后,就可以使用该类型创建变量了: ~~~ Point blank; blank.x = 3.0; blank.y = 4.0; ~~~ 第一行是常见的变量声明:blank是Point类型。接下来的两行初始化结构体的实例变量。 这里使用的点记号与对象上调用函数的语法类似,如fruit.length()中的用法。当然,不同的是,函数名后面总是跟着一个参数列表,即使列表为空。 赋值的结果可以用下面的状态图表示: ![enter image description here](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-09-01_55e5989f45197.jpg) 照例,变量名blank在框外,而变量的值在框内。这里,这个值是一个复合对象,它由两个有名字的实例变量构成。
';