C++程序设计 湖南大学 杜四春、银红霞 81.3类和结构 结构是类的一种特例,在结构中也可以定义成员 函数。定义结构时只要把关键字cass改为 struct即可 class location int GetXO private return X; nt XY public nt GetO void init(int x, int y) return Y Y=Y
C++程序设计 湖南大学 杜四春、银红霞 8.1.3 类和结构 结构是类的一种特例,在结构中也可以定义成员 函数。定义结构时只要把关键字class 改为struct即可。 class Location { private: int X,Y; public: void init(int x,int y) { X=x; Y=y; } int GetX() { return X; } int GetY() { return Y; } }
C++程序设计 湖南大学 杜四春、银红霞 结构和类的唯一区别是:在未指定访问权限时, 结构中的成员被默认为公有的而类中的成员被默认为 私有的。在所有其他方面,类和结构等价。例如 struct S int X;/公有的 尽管类和结构是等 class C 价的,但一般在描述数 intX;//有的 据时使用结构,在描述 数据及对数据的操作时 用类
C++程序设计 湖南大学 杜四春、银红霞 结构和类的唯一区别是:在未指定访问权限时, 结构中的成员被默认为公有的而类中的成员被默认为 私有的。在所有其他方面,类和结构等价。例如: struct S { int X;//公有的 ... } class C { int X;//私有的 ... } 尽管类和结构是等 价的,但一般在描述数 据时使用结构,在描述 数据及对数据的操作时 用类
C++程序设计 湖南大学 杜四春、银红霞 由于类和结构是等价的,对类的五种操作对结构 也同样适用: (1)对象之间可以相互赋值。 Location locationAlocationB location. init (5,6) locationb-locationa location的数据成员和 locational的数据成员有相同 的值。 2)对象可以作为数组的元素。 Location arrayloc[ 100 arrayloc是以结构 Location为元素的数组
C++程序设计 湖南大学 杜四春、银红霞 由于类和结构是等价的,对类的五种操作对结构 也同样适用: (1)对象之间可以相互赋值。 Location locationA,locationB; locationA.init(5,6); locationB=locationA; locationB的数据成员和locationA的数据成员有相同 的值。 (2)对象可以作为数组的元素。 Location arrayloc[100]; arrayloc是以结构Location为元素的数组
C++程序设计 湖南大学 杜四春、银红霞 (3)可以说明指向对象的指针,但不能取私有数 据成员的指针或成员函数的地址。 Location location Location pointLoc=&location 象。当 pointLoc被加1后,它将指向下一个 Location对 (4)对象可以作为函数的参数,既可作值参(不 影响实参),也可以作引用参数。 void display location &location) location就是引用参数
C++程序设计 湖南大学 杜四春、银红霞 (3)可以说明指向对象的指针,但不能取私有数 据成员的指针或成员函数的地址。 Location location; Location *pointLoc=&location; 当pointLoc被加1后,它将指向下一个Location对 象。 (4)对象可以作为函数的参数,既可作值参(不 影响实参),也可以作引用参数。 void display(Location &location) { ... }; location就是引用参数
C++程序设计 湖南大学 杜四春、银红霞 (5)一个对象可以是另一个对象的成员。 例如:可以定义一个 Rectangle类,含有一个 Location结构类型的成员 class rectangle i H=h location LOC, W=w,} int h. w Location*Getlocoi return &loc public int GetH return H;i void init(int x, int y, int h, int w) int Getwo f return W: oc init(x,y)
C++程序设计 湖南大学 杜四春、银红霞 (5)一个对象可以是另一个对象的成员。 例 如 : 可 以 定 义 一 个 Rectangle 类 , 含 有 一 个 Location结构类型的成员。 H=h; W=w; } Location *GetLoc() { return &Loc; } int GetH() { return H; } int GetW() { return W; } } class Rectangle { Location Loc; int H,W; public: void init(int x,int y,int h,int w) { Loc.init(x,y);