017_类的封装&类的基本访问控制&class与struct的区别

#include "iostream"

using namespace std;

/*
    1)封装(Encapsulation)
    A)封装,是面向对象程序设计最基本的特性。把数据(属性)和函数(操作)
       合成一个整体,这在计算机世界中是用类与对象实现的。
    B)封装,把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让
       可信的类或者对象操作,对不可信的进行信息隐藏。

    备注:有2层含义(把属性和方法进行封装 对属性和方法进行访问控制)

    C++中类的封装
    成员变量,C++中用于表示类属性的变量
    成员函数,C++中用于表示类行为的函数

    2)类成员的访问控制
    在C++中可以给成员变量和成员函数定义访问级别
        Public修饰成员变量和成员函数可以在类的内部和类的外部被访问
        Private修饰成员变量和成员函数只能在类的内部被访问

    3)struct和class关键字区别
    在用struct定义类时,所有成员的默认属性为public
    在用class定义类时,所有成员的默认属性为private
*/

//求圆形的面积
//封装有2层含义
//1 把属性和方法进行封装 
//2 对属性和方法进行访问控制
//3 类的内部和类的外部


//4 类的访问控制关键字
//public:  修饰的成员变量和函数 可以在类的内部和类的外部访问
//private:  修饰的成员变量和函数 只能在类的内部被访问,不能在类的外部访问
//protected:  修饰的成员变量和函数 只能在类的内部被访问,不能在类的外部访问, 用在继承里面


class MyCircle
{
public:
    double m_r; //属性 成员变量
    double m_s;

public:
    double getR()
    {
        return m_r;
    }
    void setR(double r) //成员函数
    {
        m_r = r;
    }

    double getS()
    {
        m_s = 3.14*m_r*m_r;
        return  m_s;
    }
protected:
private:
};

//类的封装的威力
//类封装的成员变量和成员函数  //可以调用类的成员函数
void printCircle01(MyCircle *pC)
{
    cout<<"r"<<pC->getR()<<endl;
    cout<<"s"<<pC->getS()<<endl;
}

void printCircle02(MyCircle &myc)
{
    cout<<myc.getS()<<endl;
}


void printCircle03(MyCircle myc)
{

}
void main_类的封装第一层含有()
{
    MyCircle c1, c2;
    c1.setR(10);
    cout<<"c1 s: "<<c1.getS()<<endl;

    c1.setR(11);
    printCircle01(&c1);


    c2.setR(20);
    printCircle01(&c2);


    //引用
    printCircle02(c2);

    cout<<"hello...."<<endl;
    system("pause");
}

class MyAdvCircle
{
private:
    double m_r2; //没有权限修饰的成员变量 函数 是 默认是私有属性

private:
    double m_r; //属性 成员变量
    double m_s;  //相当于你的银行卡密码

public:
    double getR()  //你的名字
    {
        return m_r;
    }
    void setR(double r) //成员函数
    {
        m_r = r;
    }

    double getS()
    {
        m_s = 3.14*m_r*m_r;
        return  m_s;
    }
};

void main_02()
{
    MyAdvCircle c1, c2;
    //c1.m_r = 10; 
    c1.setR(10);

    system("pause");
}

struct AAA
{
    int a;  //用struct关键字定义的类,不写,默认属性是public的.
            //class                                 private

public:
protected:
private:
};

void main()
{
    AAA a1;
    a1.a = 11;

    system("pause");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值