类:事物所具有的共性(行为、属性)抽象出来封装在一起
对象:由类型实例化出对象
c++与c struct的区别:c中不能存放函数,只能存放属性,方法和属性分离,c++中则可存放函数。
c中表示事物的方法存在问题:方法属性分离,可能会出现行为调用出错(调用到不属于它的行为)
c++对事物的封装-类:1、将事物的行为和属性封装在一起 2、类与结构体封装的一个主要区别是类可对访问权限进行控制结构体默认为公有类默认为私有 3、类中函数可访问类中成员 4、类=类型(属性+方法)
权限控制:1、public:类中可访问类外及子类也可访问 2、protected:类中可访问子类可访问类外不可访问 3、private:类中可访问,子类及类外不可访问
class person{
public:
int weight;
protected:
int mMonny;
private:
int age;
void show(){ //类中函数可访问类中成员
cout<<weight<<endl; cout <<mMonny<<endl; cout <<age<<endl;
}
};
void test(){
person a; //类外只可以调用public 成员
a.weight=10;
}
尽量将成员变量设置为私有权限:1、设置为公有权限无法控制改变变量 2、可对变量的设置时的权限进行控制(设置只读、只写、可读、外部不可访问 由接口完成一般设置为公有)
class personA{
public : //外部使用的接口
//只读
int get_redOnly(){
return redOnly;
}
//只写
void set_writeOnly(int val){
writeOnly =val;
}
//读写
void set_redWrite(int val){
redWrite=val;
}
int get_redWrite(){
return redWrite;
}
private :
int redOnly;
int writeOnly;
int redWrite;
}