正在加载图片...
第7单元类和对象(I) 135 对于成员函数来说,除了可以采用关键词 inline将其声明为内联函数外,还有一种更简单的方 法,就是在类的声明中直接定义成员函数的函数体,这样的函数自动成为内联成员函数。例如, 可将类 Person的成员函数声明为内联成员函数: class person char m strName [20] t int mm sex public void ister(const char sname int age, char sex) i strcpy(m strName, name) m nAge age m nSex =(sex =='m?0: 1) void Get Name(char * name i strcpy (name, m strName) GetAge o I return m nA, char Getsex I return (m nSex ==0?'m:'f") 类的成员函数与普通函数一样,可以重载,也可以带有缺省参数。 723公有成员和私有成员 为了实现既要隐藏数据,又要为外界使用数据提供接口的封装目的,通常是将类中的数据 成员声明为私有的而将成员函数声明为公有的。然而,在设计一个具体类时,各成员的访问权 限还应根据实际需要而定。一般说来,将类中的数据成员声明成公有的将难以保证该成员的安 全性,而将类的中成员函数声明成私有时还是非常必要的。例如,类中的一个只供其成员函数 调用的成员函数就应当声明为私有的 习惯上将具有全局作用域的类声明放在一个头文件中,将成员函数的定义放在一个另一个 源程序文件中,以提高编程的灵活性。 724对象 对象是类的实例。从技术上讲,一个对象就是一个具有某种类类型的变量。与普通变量 样,对象也必须先经声明才可以使用。声明一个对象的一般形式为第 7 单元 类和对象(I) - 135 - 对于成员函数来说,除了可以采用关键词 inline 将其声明为内联函数外,还有一种更简单的方 法,就是在类的声明中直接定义成员函数的函数体,这样的函数自动成为内联成员函数。例如, 可将类 Person 的成员函数声明为内联成员函数: class Person { private: char m_strName[20]; int m_nAge; int m_nSex; public: void Register(const char *name, int age, char sex) { strcpy(m_strName,name); m_nAge = age; m_nSex = (sex = = ‘m’?0:1); } void GetName(char *name) { strcpy(name, m_strName); } int GetAge() { return m_nAge; } char GetSex() { return (m_nSex = = 0?’m’:’f’); } }; 类的成员函数与普通函数一样,可以重载,也可以带有缺省参数。 7.2.3 公有成员和私有成员 为了实现既要隐藏数据,又要为外界使用数据提供接口的封装目的,通常是将类中的数据 成员声明为私有的而将成员函数声明为公有的。然而,在设计一个具体类时,各成员的访问权 限还应根据实际需要而定。一般说来,将类中的数据成员声明成公有的将难以保证该成员的安 全性,而将类的中成员函数声明成私有时还是非常必要的。例如,类中的一个只供其成员函数 调用的成员函数就应当声明为私有的。 习惯上将具有全局作用域的类声明放在一个头文件中,将成员函数的定义放在一个另一个 源程序文件中,以提高编程的灵活性。 7.2.4 对象 对象是类的实例。从技术上讲,一个对象就是一个具有某种类类型的变量。与普通变量一 样,对象也必须先经声明才可以使用。声明一个对象的一般形式为:
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有