人民邮电出版3 第十五章类
人民邮电出版社 第十五章 类
人民邮电出版3 151类的结构 15.2内联函数 153友元函数 154类的静态成员 15.5传递对象给函数 15.6类和指针 157类与结构类型和联合类型的关系
人民邮电出版社 15.1 类的结构 15.2 内联函数 15.3 友元函数 15.4 类的静态成员 15.5 传递对象给函数 15.6 类和指针 15.7 类与结构类型和联合类型的关系
人民邮电出版 15.1类的结构 类是C++对C中结构的扩展。C语言中的 struct 是数据成员集合,而C++中的类,则是数据成员和 函数成员的集合。 struc是用户定义的数据类型,是 冷YC一种构造数据类型。类和uet样,也是一种用户 定义的数据类型,是一种构造数据类型 关键字 private后面的成员被说明为私有的
人民邮电出版社 类是C++对C中结构的扩展。C语言中的struct 是数据成员集合,而C++中的类,则是数据成员和 函数成员的集合。struct是用户定义的数据类型,是 一种构造数据类型。类和struct一样,也是一种用户 定义的数据类型,是一种构造数据类型。 关键字private后面的成员被说明为私有的。 15.1 类的结构
人民邮电出版3 1511类的定义 定义一个类,就相当于定义一个新的数据类型。 类的一般定义形式为: class类名 private 数据和函数 public: 数据和函数 关键字 private后面的成员被说明为私有的
人民邮电出版社 15.1.1 类的定义 定义一个类,就相当于定义一个新的数据类型。 类的一般定义形式为: class类名 { private: 数据和函数 public: 数据和函数 } 关键字private后面的成员被说明为私有的
人民邮电出版3 上述类的公有部分中,说明了四个函数。这四个函 数及其功能如下: void init counter0对 counter进行初始化; void inc(void) 对 counter进行加一操作; void dec(void) 对 counter进行减一操作; unsigned int getvalue((void)获取 counter的值。 这些类的成员函数,也称为类的方法
人民邮电出版社 上述类的公有部分中,说明了四个函数。这四个函 数及其功能如下: void init_counter() 对counter进行初始化; void inc(void) 对counter进行加一操作; void dec(void) 对counter进行减一操作; unsigned int getvalue(void) 获取counter的值。 这些类的成员函数,也称为类的方法
人民邮电出版3 1512类成员函数的定义 类成员函数的定义既可以在类定义的内部完成, 即在定义类的同时给出成员函数的定义,也可以在类 之外进行。 成员函数定义的一般形式为: 函数类型类名:函数名(参数) 函数体
人民邮电出版社 15.1.2 类成员函数的定义 类成员函数的定义既可以在类定义的内部完成, 即在定义类的同时给出成员函数的定义,也可以在类 之外进行。 成员函数定义的一般形式为: 函数类型类名::函数名(参数) { 函数体 }
人民邮电出版3 1513类的对象的定义与访问 1定义对象 定义了数据类型“类”之后,就可以像定义 int,foat等类型变量那样去建立类的变量。 第一种方法是在定义了类之后,使用下面形式的语句 clas类名对象名; 类名对象名; 定义类的对象。 第二种方法是将对象名写在类定义的右花括号之后: class类名 类数据成员和成员函数 }对象名;
人民邮电出版社 15.1.3 类的对象的定义与访问 1. 定义对象 定义了数据类型“类”之后,就可以像定义 int, float等类型变量那样去建立类的变量。 第一种方法是在定义了类之后,使用下面形式的语句 class 类名 对象名; 或 类名 对象名; 定义类的对象。 第二种方法是将对象名写在类定义的右花括号之后: class 类名 { 类数据成员和成员函数 }对象名;
人民邮电出版 2.定义对象数组 可以像定义其它数据类型一样,定义对象数组。 例如,有 class counter,则可以建立如下有十个元素 的对象数组: counter counter 10; 3.访问对象成员 当定义了一个类的对象后,就可以访问对象的成 员了。访问对象成员要使用操作符“.”。访问对象的 数据成员时,可以这样写: 对象名数据成员
人民邮电出版社 2. 定义对象数组 可以像定义其它数据类型一样,定义对象数组。 例如,有class counter, 则可以建立如下有十个元素 的对象数组: counter counterA[10]; 3. 访问对象成员 当定义了一个类的对象后,就可以访问对象的成 员了。访问对象成员要使用操作符“.” 。访问对象的 数据成员时,可以这样写: 对象名.数据成员
人民邮电出版3 152内联函数 15.1用修饰符 inline说明成员函数 可以将“ inline”写在相应成员函数名的前面 ,这里有两种情况:或者是在类定义中成员函数 名前,或者写在类定义外定义函数时的函数名前 1522隐式内联函数 在类定义内,直接定义成员函数,成员函数 就自动地转换为内联函数。因此,在这种情况下 不需修饰符 inline,称为隐式内联函数
人民邮电出版社 15.2 内联函数 15.2.1 用修饰符inline说明成员函数 可以将“inline”写在相应成员函数名的前面 。这里有两种情况:或者是在类定义中成员函数 名前,或者写在类定义外定义函数时的函数名前 。 15.2.2 隐式内联函数 在类定义内,直接定义成员函数,成员函数 就自动地转换为内联函数。因此,在这种情况下 不需修饰符inline,称为隐式内联函数
人民邮电出版3 153友元函数 如果把一个非成员函数说明为类的友元函数,则 该函数就能够去访问该类的私有部分。 例如,将函数frd定义为类的友元函数: class a private: pl ubIc friend void frd(void);
人民邮电出版社 15.3 友元函数 如果把一个非成员函数说明为类的友元函数,则 该函数就能够去访问该类的私有部分。 例如,将函数frd定义为类a的友元函数: class a { private: ……… ……… public: friend void frd(void); ……… ……… };