C++的类介绍(封装特性)

本文介绍了C++中的类的概念,包括类的定义、作用以及面向对象的三大特性——封装、继承和多态。通过示例展示了如何创建一个圆类和学生类,强调了封装的重要性,如将属性设为私有,行为设为公共。同时,讨论了类的成员属性的访问权限,包括公共、保护和私有。
摘要由CSDN通过智能技术生成

一、类的定义

1.1定义

类是c++语言对编程思想的概括深化,其前期的C语言使能面向过程的语言,思想是注重对程序每一步的理解;而面向过程的是C++语言之父把生活的类与对象的思想应用于程序设计之中,把程序抽象成一个个对象。

C++面向对象的三大特性为:封装、继承、多态

C++认为万事万物都皆为对象,对象上有其属性和行为
例如:

​ 人可以作为对象,属性有姓名、年龄、身高、体重…,行为有走、跑、跳、吃饭、唱歌…

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

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

1.2作用

封装是C++面向对象三大特性之一

封装的意义:

将属性和行为作为一个整体,表现生活中的事物(其实就是用户设置一个自己的数据类型)
将属性和行为加以权限控制
封装意义

​ 在设计类的时候,属性(变量)和行为(函数)写在一起,表现事物,变量一般放在私有,函数放在public

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

二、类的封装特性

所谓封装特性就是把变量和函数都封装进类里面。一个类里面的函数称为方法,变量称为属性

三、源码实例

示例1设计一个圆类)(circle

class circle{
public :
    double m_r;
//第一中赋值方法
void fuzhi()
{

    cout<<"please input your r"<<endl;
    cin>>m_r;
}
//第二种赋值方法
void fuzhi1(int a)
{

    m_r=a;
}
double calculate()
{
    return 2*PI*m_r;
}

};

示例2 设计一个学生类,属性有姓名、学号和分数,可以给姓名和学号赋值,可以显示学生的姓名、学号和分数。

class student{
public :
    string name;
    int stu_id;
    double score;

public:
    void set_name(string na)
    {
        name=na;
    }
    void set_stu_id(int id)
    {

    stu_id=id;

    }
    void set_score(double  score1)
    {
    score=score1;

    }

    void getvalue()
    {

        cout<<"student's id is  "<<stu_id <<"student's name is "<<name ;
        cout<<"student 's score is  "<<score;

    }
};

示例3:类的成员的三种属性
公共属性 public(成员内可以访问,成员外也可以访问)

保护属性 protected(成员内可以访问,成员外不可以访问

私有属性 private(成员内可以访问,成员外不可以访问)
*/

class perpon{
public :
    string  name;
protected :
    string car;
private :
    int id_card;
public :
    void func()
    {
        name="Lijiax";
        car="volove";
        id_card=123456789;

    }
};

main.c

int main()
{
    circle c1;
    c1.fuzhi();
    cout<<"使用fuzhi函数求得圆的周长是"<<c1.calculate()<<endl;
    c1.fuzhi1(2);
    cout<<"使用fuzhi1函数求得圆的周长是"<<c1.calculate()<<endl;
    student s1;
    s1.set_name("马伟");
    s1.set_stu_id(101);
    s1.set_score(100);
    s1.getvalue();
    cout<<"---------------------------"<<endl;
    perpon p1;
    p1.name="ll";
    //p1.car="benci";保护属性,无法访问,程序会报错

    return 0;
}

输出结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书中藏着宇宙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值