C++类的封装和访问控制

本文探讨了C++中的封装概念,它是面向对象编程的基础。封装将数据和函数整合为类和对象,通过设定访问控制来保护数据,防止不合法的访问。主要介绍类成员的访问控制,如public、private和protected的区别,public成员可以在内外部访问,而private和protected限制了外部访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类的封装、

    1)封装是main想对象程序设计最基本的特性。把数据(属性)和函数(操作)合成一个整体,这在计算机世界中是用类和对象实现的

    封装就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息的隐藏

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

    2)类成员的访问控制

        C++中的封装:成员变量,C++中用于表示类属性的变量

                                成员函数,C++中用于表示类行为的函数

        在C++中,可以给成员变量和成员函数定义访问级别

           public修饰成员变量和成员函数可以在类的内部和类的外部被访问

           private修饰成员变量和成员函数,只能在类的内部被访问,不能在类的外部访问

           protected修饰成员变量和成员函数,只能在类的内部被访问,不能在类的外部访问

//类的封装

#include<iostream>

using namespace std;

//求圆的面积

//封装有两层含义

//1、把属性和方法进行封装

//2、对属性和方法进行访问控制

class MyCircle

{

public:

            double m_r;  //成员变量

            double m_s;

public:

            double getR() //成员函数

            {

                        return m_r;

            }

            double SetR(double r)

            {

                        m_r = r;

                        return m_r;

            }

            double getS()

            {

                        m_s = 3.14*m_r*m_r;

                        return m_s;

            }

private:

protected:

};

void printfC1(MyCircle *p)

{

            cout << "R1="<<p->getR()<< endl;

            cout << "S1="<<p->getS()<< endl;

}

void printfC2(MyCircle &p)

{

            cout << "R2=" << p.getR() << endl;

            cout << "S2=" << p.getS() << endl;

}

void printfC3(MyCircle p)

{

            cout << "R3=" << p.getR() << endl;

            cout << "S3=" << p.getS() << endl;

}

void main()

{

            MyCircle c1,c2;

            c1.SetR(10);

            cout<<"S="<<c1.getS()<<endl;

            c2.SetR(20);

            printfC1(&c2);

            printfC2(c1);

            printfC3(c1);

            system("pause");

}
//类的访问控制

#include<iostream>

using namespace std;

//求圆的面积

//封装有两层含义

//1、把属性和方法进行封装

//2、对属性和方法进行访问控制

class MyCircle

{

private:

            double m_r;  //成员变量

            double m_s;

public:

            double getR() //成员函数

            {

                        return m_r;

            }

            double SetR(double r)

            {

                        m_r = r;

                        return m_r;

            }

            double getS()

            {

                        m_s = 3.14*m_r*m_r;

                        return m_s;

            }

private:

protected:

};

void main()

{

            MyCircle c1;

            //cout << c1.m_r<< endl;//外部不可以访问用private声明的成员变量

            cout<<c1.SetR(10)<<endl;//可以通过私有成员变量和外部的公共接口改变私有成员变量的属性

            system("pause");

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值