- 用法1:对象名.成员名
r1.w = 5;
r2.Init(3,4);
- 用法2:指针->成员名
CRegtangle r1 ,r2;
CRegtangle * p1 = &r1;
CRegtangle * p2 = &r2;
p1->w = 5;
p2->Init(3,4);
- 用法3:引用名.成员名
CRegtangle r2;
CRegtangle & rr = r2;
rr.w = 5;
rr.Init(3,4);
- 成员函数体和类的定义分开写
class CRegtangle{
public:
int w,h;
int Area();
int Perimeter();
void Init(int w_,int h_);
};
类的成员函数的另一种写法
int Rectangle::Area(){
return w*h;
}
int Rectangle::Perimeter()}
return 2*(w+h);
}
void Rectangle::init(int w_,int h_){
w = w_;h = h_;
}
- 类成员的可访问范围
- private:制定私有成员,智能在成员函数内被访问
- public:制定共有成员,可以在任何地方被访问
- protected:制定保护成员
- 缺省为私有成员
class Man{
int nAge; //私有成员
char szName[20];//私有成员
public:
void SetName(char * Name){
strcpy(szName,Name);
}
}
- 对象成员的访问权限
- 类的成员函数内部,可以访问
- 当前对象的全部属性,函数
- 同类其他对象的全部属性,函数
- 类的成员函数意外的地方
- 只能够访问该类对象的共有成员
class Employee{
private:
char szName[30];
public:
int salary;
void setName(char * name);
void setName(char * name);
void averageSalary(Employee e1,Employee e2);
};
void CEmployee::setName(char *name){
strcpy(szName,name);//ok
}
void Employee:getName(char * name){
strcpy(name,szName);//ok
}
- 设置私有成员的母的:
- 强制对成员变量的访问一定要通过成员函数进行
- 设置私有成员的机制-- 隐藏