程序设计实习第十一讲类和对象httpaipkueducncpp20xx内容摘要:

nt tmp。 tmp = a。 a = b。 b = tmp。 } int n1, n2。 swap(n1,n2)。 // n1,n2的值被交换 引用的作用 函数的返回值可以是引用 ,如: include iostream using namespace std。 int n = 4。 int amp。 SetValue() { return n。 } main() { SetValue() = 40。 cout n。 } 该程序输出结果是 40 引用作为函数的返回值 类的成员函数的另一种写法 成员函数体和类的定义分开写 class CRectangle { public: int w,h。 int Area()。 //成员函数仅在此处声明 int Perimeter()。 void Init( int w_,int h_ )。 }。 int CRectangle::Area() { return w * h。 } int CRectangle::Perimeter() { return 2 * ( w + h)。 } void CRectangle::Init( int w_,int h_ ) { w = w_。 h = h_。 } CRectangle::说明后面的函数是 CRectangle类的成员函数,而非普通函数。 那么,一定要通过对象或对象的指针才能调用。 类的成员函数的另一种写法 对象成员的访问权限  在类的定义中,用下列权限关键字来说明对象成员的访问权限  private: 私有成员,只能在成员函数内访问  public : 公有成员,可以在任何地方访问  protected: 保护成员,以后再说  以上三种关键字出现的次数和先后次序都没有限制  定义一个类 class className { private: 私有属性和函数 public: 公有属性和函数 protected: 保护属性和函数 }。 说明类成员的可见性  如过某个成员前面没有上述关键字,则缺省地被认为是私有成员 class Man { int nAge。 //私有成员 char szName[20]。 // 私有成员 public: SetName(char * szName){strcpy( szName)。 }。 }。 对象成员的访问权限  在类的成员函数内部,能够访问:  当前对象的全部属性、函数  同类其它对象的全部属性、函数。  在类的成员函数以外的地方,只能够访问该类对象的公有成员 对象成员的访问权限 include class CHero { private: char szMenpai[10]。 //侠客的门派 public : int nStrength, nForce。 //生命值和攻击力 void SetMenpai(char * menpai)。 void Attack( CHero amp。 hero)。 }。 void CHero::SetMenpai( char * menpai) { strcpy( szMenpai,menpai)。 //ok } void CHero::Attack( CHero amp。 hero) { = nForce。 //在成员函数内部可以访 //问同类对象的私有成员 } int main() { CHero Hero1,Hero2。 strcpy(,“Shaolin”)。 //错 ,不能访问私有成员 ( Shaolin)。 // ok = 100。 //ok return 0。 } 设置私有成员的目的是强制对成员变量的访问一定要通过成员函数进行,那么以后成员变量的类型等属性修改后,只需要更改成员函数即可。 否则,所有直接访问成员变量的语句都需要修改。 设置私有成员的机制,叫“ 隐藏 ” 例如,如果将上面的程序移植到内存空间紧张的手持设备上,希望将 szMenpai 改为 int nMenpai, 即门派编号,然后根据门派编号能查到门派名字,如果 szMenpai 是私有,那么就要找出所有类似 strcpy(,”Shaolin”)。 这样的语句进行修改,这样做很麻烦。 如果将 szMenpai 为私有,那么程序中就不可能出现(除非在类的内部) strcpy(,”Shaolin”)。 这样的语句,所有对 szMenpai的访问都是通过成员函数来进行,比如: (“Shaolin”)。 那么,就算 szPenpai变成 int nMenpai了,上面的语句也不需要找出来修改,只。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。