c++入门学习③——封装

目录

前言:

c++面向对象有三个特性:分别是封装、继承、多态

❀定义:

❀封装:三大特征之一

封装的意义:

思路示例:

问题:

解决方案:

一点专业术语:

权限:

保护权限和私有权限的区别:

struct和class区别:

将成员属性设置为私有

封装案例:

结语:


前言:

类和对象在c++中是最重要的一部分内容之一,这里会根据三大特性去讲解类和对象的内容,本文具体先介绍其中一个,认真观看哦(ง •_•)ง

前面传送门:

c++入门学习①-CSDN博客

c++入门学习②-CSDN博客

c++面向对象有三个特性:分别是封装、继承、多态

❀定义:

万事万物都可称为对象

对象有属性有行为,具有相同性质的对象,抽象后为一个类,比如人类

类里包含对象属性、对象行为,

有三大权限👉私有权限,公共权限,保护权限

❀封装:三大特征之一

封装的意义:

将属性和行为作为一个整体,表现生活中的事物(万事万物👉对象),并加以权限控制

思路示例:

问题:

写一个圆类,求周长?

解决方案:

公式:2*派*半径

关键字——class

后面紧接着是变量名

访问权限:公共权限

属性:半径

行为:获取圆的周长

通过这个类创造一个具体的圆👉对象

通过点给圆对象属性进行赋值

一点专业术语:

类中的属性和成员统一成为成员

属性又称为:成员属性、成员变量

行为又称为:成员函数

权限:

public公共权限👉成员类内可以访问,类外也可以用,

protected保护权限👉成员类内可以访问,

private私有权限👉成员类内可以访问

保护权限和私有权限的区别:

举例:

保护权限,就是父亲的权限,儿子也可以访问,

私有权限,父亲的私人权限不可以被访问,私有的,这些在继承时会具体讲解

这些权限可以在一个类中多次使用,一个类并没有规定必须只能有一个公共权限等权限

如果保护权限和私有权限在类外发生访问,结果会出错

struct和class区别:

基本相同,但是默认的访问权限不同

struct默认权限公共

class默认权限为私有(默认是类里不写权限默认情况下是私有的)

将成员属性设置为私有

优点:可以自己控制读写功能、对于自己写的权限可以检测数据有效性

用private?

但是如果想让私有权限里的变量可以控制是“可读可写”/“只写”/“只读(设置传入值不行只能获取)”

只用这个私有权限是无法实现这个效果的,因此需要配合公共权限来实现

示例:

#include<iostream>
#include<string>
using namespace std;
int main()
{
    class student {
    public:
        void setname(string Name){
            name = Name;
        }
        string getname(){
            return name;
        }
        int getold() {
            return old;
        }
        void setidol(string Idol){
            idol = Idol;
        }
    private:
        string name;//设置为可写可读
        int old=18;//设置为可读
        string idol;//设置为可写不可读
    };
  
    student s;
    s.setname("何灰灰");  //设置姓名
    cout << "姓名: " << s.getname() << endl;//输出
    cout << "年龄: " << s.getold() << endl;
    s.setidol("何白白");//设置可写,但是不可读出。
    system("pause");
    return 0;
}

封装案例:

设计立方体并求出体积和面积

代码:

#define  _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
using namespace std;
int main()
{
    class cube {
    public:
        //行为
        //设置获取长宽高
        void setl(int l) {
            m_l = l;
        }
        int getl() {
            return m_l;
        }
        void seth(int h) {
            m_h = h;
        }
        int geth() {
            return m_h;
        }
        void setw(int w) {
            m_w = w;
        }
        int getw() {
            return m_w;
        }
        //获取面积
        int gets() {
            int calculates = 2 * m_l * m_w + 2 * m_l * m_h + 2 * m_w * m_h;
            return calculates;
        }
        //获取立方体体积
        int getv() {
            int calculatev =  m_l * m_w  *m_h ;
            return calculatev;
        }
    private:
        //属性
        int m_h;
        int m_w;
        int m_l;  
    };
    cube c1;
    cube c2;
    c1.setl(10);
    c1.setw(10);
    c1.seth(10);
    cout << "c1面积为" << c1.gets() << endl;
    cout << "c1体积为" << c1.getv() << endl;
    system("pause");
    return 0;
}

结语:

感谢观看点赞收藏,下个文章会讲解有关对象的初始化和清理等c++入门知识,欢迎大佬们留言或私信交流o(* ̄▽ ̄*)ブ

  • 31
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值