1、成员函数的另一种写法:类的成员函数和类的定义分开写
e.g.
class rectangle { public: int w,h; int area(); int p(); void init(int w_,int h_); }; int rectangle::area(){ return w*h; } int rectangle::p(){ return 2*(w+h); } void rectangle::init(int w_,int h_){ w=w_;h=h_; } //rectangle::说明后面的函数是rectangle类的成员函数,而不是普通函数。就一用要通过对象、对象的指针、对象的引用才能调用
2、类成员的可访问范围
- 在类的定义中可以使用关键字说明类成员可被访问的范围,关键词可多次先后出现:
- private:私有成员,只能在成员函数内访问
- public:公有成员,可以在任何地方访问
- protected:保护成员
- 如果没有关键词,则缺省认为是私有的
- 在类的成员函数内部,能访问:①当前对象的全部属性、函数 ②同类其他对象的全部属性、函数
在成员函数以外的地方,只能够访问该类对象的公有成员
e.g.class person { private: char szname[30];//私有 名字 public: int salary; void setname(char *name); void getname(char *name); void average(person e1,person e2); }; void person::setname(char *name) {strcpy(szname,name)};//OK void person::getname(char *name) {strcpy(name,szname);}//OK void person::average(person c1,person c2) { cout<<c1.szname;//OK 访问其他同类对象的私有成员 cout<<(c1.salary +c2.salary)/2; } int main() { person e; strcpy(e.ezname,"Tom")//error 编译错 在成员函数以外的地方不能访问私有成员 e.setname("Tom")//OK e.salary=5000;//OK return 0; }