172210704111-陈国佳总结《2017年11月18日》【连续018天】
标题:类和对象的基本概念的进一步学习;
内容:A.观看MOOC(三)2.1;
B.
(a).
从客观事物抽象出类:
例:写程序,输入矩形的长和宽,输出面积和周长;
属性:长和宽;(成员变量)
行为:设置长和宽,算面积,算周长;(成员函数)
class CR
{
public:
int w,h;
int Area(){
return w*h;
}
int Perimeter(){
return (w+h)*2;
}
void Init (int w_,int h_){
w=w_; h=h_;
}
}; //此处有分号
int main()
{
int w,h;
CR r; //r是一个对象
cin>>w>>h;
r.Init(w,h);
cout<<r.Area()<<endl<<r.Perimeter();
return 0;
}
类定义的变量即为“对象”。
一般而言,对象的内存空间等于所有成员变量的大小之和。如上文:sizeof(CR)=8;
对象间的运算:对象之间可以用“=”进行赋值,但不能用“==”,“!=”,“>”,“>=”,“<=”进行比较,除非这些运算符经过了“重载”。
使用类的成员变量和成员函数
用法1: 对象名.成员名
CR r1,r2; r1.w =5; r2.Init(5,4);
用法2:指针->成员名
CR r1,r2;
CR *p1=& r1; CR*p2=& r2;
p1 ->w=5; p2->Init(5,4);
用法3:引用名.成员名
CR r2;
CR & rr =r2; rr.w =5; rr.Init(5,4);
(b).
类成员的可访问范围:
-private: 私有成员,只能在成员函数内访问
-public: 公有成员,可以在任何地方访问
-protected: 保护成员
class className{
private: 私有属性和函数
public: 公有属性和函数
protected: 保护属性和函数
};
如果某成员前我成员关键字,则缺省地认为是私有成员;
class Man{ int n; //私有
在类的成员函数内部,可访问,当前对象及同类其它对象的全部属性,函数;
类的成员函数以外的地方,只能够访问该类对象的公有成员;
设置私有成员的机制叫“隐藏”
其目的是强制对成员变量的访问必须通过成员函数进行;
明日计划:学习枚举的例题;