千家信息网

C++的封装方法是什么

发表于:2025-02-09 作者:千家信息网编辑
千家信息网最后更新 2025年02月09日,本篇内容介绍了"C++的封装方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!封装c++认为万
千家信息网最后更新 2025年02月09日C++的封装方法是什么

本篇内容介绍了"C++的封装方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    封装

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

    封装的意义:

    • 将属性和行为作为一个整体,表现生活中的事物

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

    封装意义一:

    在设计类的时候,属性和行为写在一起,表现事物

    语法:

    class 类名{ 访问权限:属性 / 行为};

    属性和行为作为整体

    #includeusing namespace std;//圆周率const double PI = 3.14;//设计一个圆类,求圆的周长//圆求周长的公式:2*PI*半径class Circle {        //访问权限        //公共权限public:           //属性                //半径           int m_r;        //行为        //获取圆的周长                double calculateZC() {                        return 2 * PI * m_r;                }}; int main() {        //通过圆类,创建具体的圆(对象)        //实例化  (通过一个类 创建一个对象的过程)        Circle c1;        //给圆对象的属性进行赋值        c1.m_r = 10;        //2 * PI * m_r = 62.8;        cout << "圆的周长为:" << c1.calculateZC () << endl;        system("pause");        return 0;}

    实例—设计学生类

    #includeusing namespace std;//#include//设计一个学生类,属性有姓名和学号,可以给姓名和学号赋值,可以显示学生的姓名和学号//设计学生类class Student {public://公共权限        //类中的属性和行为 我们统一称为 成员        //属性 成员属性 成员变量        //行为 成员函数 成员方法   //属性        string m_Name;//姓名        int m_Id;//学号        //行为        //显示姓名和学号        void showStudent() {                cout << "姓名:" << m_Name << "  学号:"<

    访问权限

    封装意义二:

    类在设计时,可以把属性和行为放在不同的权限下,加以控制

    权限访问有三类:

    • public 公共权限

    • protected 保护权限

    • private 私有权限

    #includeusing namespace std;//访问权限//三种//公共权限 public        成员  类内可以访问  类外也能访问//保护权限 protected     成员  类内可以访问  类外不可以访问 儿子可以访问到父亲中的保护内容//私有权限 private              成员  类内可以访问  类外不可以访问 儿子不可以访问到父亲的私有内容class Person {public:        //公共权限        string m_Name;//姓名protected:        //保护权限        string m_Car;//汽车private:        int m_Password;//银行卡密码public:        void func() {                m_Name = "张三";                m_Car = "拖拉机";                m_Password = 123456;        }};int main() {        //实例化具体对象        Person p1;        p1.m_Name = "李四";        //p1.m_Car = "奔驰";//保护权限的内容,在类外访问不到        //p1.m_Password = 123;//私有权限的内容,在类外访问不到         system("pause");        return 0;}

    class与struct区别

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

    区别:

    • struct默认权限为公共

    • class默认权限为私有

    #includeusing namespace std;class C1 {   int m_A;//默认权限 是私有};struct C2 {        int m_A;//默认权限 是公共};int main() {        //struct和class区别        //struct 默认权限是 公有 public        //class  默认权限是 私有 private        C1 c1;        //c1.m_A = 100;//在class里默认权限 私有,因此类外不可以访问   C2 c2;        c2.m_A = 100;//在struct默认的权限为公共,因此可以访问        system("pause");        return 0;}

    成员属性私有化

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

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

    #includeusing namespace std;#include//成员属性设置为私有//1.可以自己控制读写权限//2.可以写可以检验数据的有效性//设计人类class Person {public:        //设置姓名        void setName(string name) {                m_Name = name;        }        //获取姓名        string getName() {                return m_Name;        }        //获取年龄  只读        int getAge() {                //m_Age = 0;//初始化零岁                return m_Age;        }        void setAge(int age) {                if (age < 0 || age>150) {                        m_Age = 0;                        cout << "你这个老妖精!" << endl;                        return;                }                m_Age = 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 << "姓名为:" <

    设计立方体类

    #includeusing namespace std;//立方体类设计//1.创建立方体类//2.设计属性//3.设计行为 获取立方体面积和体积//4.分别利用全局函数和成员函数 判断两个立方体是否相等 class Cube {public:        //行为        // 设置长        void setL(int l) {                m_L = l;        }        // 获取长        int getL() {                return m_L;        }        // 设置宽        void setW(int w) {                m_W =w ;        }        // 获取宽        int getW() {                return m_W;        }        // 设置高        void setH(int h) {                m_H = h;        }        // 获取高        int getH() {                return m_H;        }        // 获取立方体面积        int calculateS() {                return 2 * m_L * m_W + 2 * m_L * m_H + 2 * m_W * m_H;        }        // 获取立方体体积        int calculateV() {                return m_L * m_W * m_H;        }        //利用成员函数判断两个立方体是否相等        bool isSameByClass(Cube &c) {                if (m_L == c.getL() && m_W == c.getW() && m_H == c.getH()) {                        return true;                }                return false;        }private:        //属性        int m_L;//长        int m_W;//宽        int m_H;//高};//利用全局函数来判断 两个立方体是否相等bool isSame(Cube &c1,Cube &c2) {        if (c1.getL() == c2.getL() && c1.getW() == c2.getW() && c1.getH() == c2.getH()) {                return true;        }        return false;}int main() {        //创建立方体对象        Cube c1;        c1.setL(10);        c1.setW(10);        c1.setH(10);        cout << "c1的面积为:" <

    "C++的封装方法是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

    0