c++类和对象中的封装

c++面向对象的三大特性:(抽象),封装,继承,多态

c++认为万事万物皆为对象,对象上有其属性和行为

例如:人可以作为对象,属性有姓名,年龄,身高,体重...,行为有走,跑,跳,吃饭...

车也可以作为对象,属性有轮胎,方向盘,车灯...,行为有载人,放空调...

具有相同性质的对象,我们可以抽象称为,人属于人类,车属于车类

1.封装

封装的意义:将属性和行为作为一个整体,表现生活中的事物

将属性和行为加以权限控制

语法:

class 类名{

访问权限:

        属性/行为;

示例:设计一个圆类,求圆的周长

#include
using namespace std;
double pi=3.14;  //设置全局变量
class circle{
public:  //公共的访问权限
    int r;  //属性-半径
    double calculatezc(){  //行为-计算圆的周长
        return 2*pi*r;
    }
}
int main(){
    circle p;  //创建圆的对象
    p.r=10;    //点操作访问成员
    cout<<"圆的周长:"<

2.访问权限

1.公共权限 public 类内可以访问,类外也可以访问

2.保护权限 protected类内可以访问,类外不可以访问

3.私有权限 private 类内可以访问,类外不可以访问

#include
using namespace std;
class person{
public:  //公共权限
    string name;
protected:  //保护权限
    string car;
private; //私有权限
    int password;
public:
    void func(){
        name="张三";
        car="劳斯莱斯";
        password=123456;
}
int main(){
    person p;
    p.name="李四";  //可以修改
    p.car="法拉第";  //不可以修改;
    p.passsword=12345678;  //不可以修改
    return 0;
}

3.struct和class的区别

在c++中struct和class唯一的区别就在于默认的访问权限不同

区别:

  • struct默认权限为公共
  • class默认权限为私有
#include
using namespace std;
class c1{
    int a;//默认权限为私有
}
struct c2{
    int a;//默认权限为共有
}
int main(){
    c1 c;
    c.a=100;//错误示例
    c2 c;
    c.a=100;//成功示例
    return 0;
}

4.成员属性设置为私有

优点一:将所有成员属性设置为私有,可以自己控制读写权限

优点二:对于写权限,我们可以检测数据的有效性

#include
using namespace std;
#include
class person{
public:
    //设置姓名
    void setname(string name){
        m_name=name;
    }
    //获取姓名
    string getname(){
        return n_name;
    }
    //获取年龄  只读
    int getage(){
        m_age=18;
        return m_age;
    }
    //设置情人
    void setlover(string lover){
        m_lover=lover;
    }
private:
    //姓名  可读可写
    string m_name;
    //年龄  只读
    int m_age;
    //情人  只写
    string m_lover;
};
int main(){
    person p;
    p.setname("张三"); //可写
    cout<

你可能感兴趣的:(c++,开发语言)