c++ 类和对象(笔记)(持更)

c++ 面对对象的三大特性:封装、继承、多态
对象上有其属性和行为
具有相同性质的对象,可以抽象为类

一、封装

1、封装的意义
(1)将属性和行为作为一个整体,表现生活中的事物:
在设计类时,属性和行为写在一起,表现事物
语法:class 类名{权限访问:属性 / 行为};
例1 创建一个圆类

#include <iostream>

using namespace std;

//圆周率
const double PI = 3.14;

//设计一个圆类,求圆的周长
//周长公式 2 * PI * 半径

//class代表设计一个类,类后面紧跟着就是类的名称
class Circle
{
    //访问权限
    //公共权限
public:
    //属性
    int m_r;

    //行为,通常是函数
    //获取圆的周长
    double calculateZC()
    {
        return 2 * PI * m_r;
    }
};
int main()
{
    //通过圆类 创建具体的圆(对象)
    //通过一个;类,创建一个对象
    Circle c1;

    //给对象的属性进行赋值
    c1.m_r = 10;
    //2 * PI * 10
    cout<<"圆的周长:"<<c1.calculateZC()<<endl;
    return 0;
}
//学生类
//设计一个学生类,属性有姓名和学号
//可以给姓名和学号赋值,可以显示学生的姓名和学号
#include <iostream>
#include <string>

using namespace std;

//设计学生类
class Student
{
public://公共权限

    //类中的属性和行为,统一称为 成员
    //属性 成员属性 成员变量
    //行为 成员函数 成员方法

    //属性
    string m_Name;//姓名
    int m_Id;//学号

    //行为
    //显示姓名和学号
    void showstudent()
    {
        cout<<"姓名:"<<m_Name<<" 学号:"<<m_Id<<endl;
    }
    //可以通过行为给姓名赋值
    void setName(string name)
    {
        m_Name = name;
    }
    //通过学号进行赋值
    void setId(int id)
    {
        m_Id = id;
    }
};

 int main()
{
    //创建一个具体的学生
    Student s1;
    //给s1对象进行属性赋值
    s1.m_Name = "蒋十三";
    s1.m_Id = 1;
    //显示学生信息
    s1.showstudent();

    Student s2;
    s2.m_Name = "王五";
    s2.m_Id = 2;
    s2.showstudent();

    //另一种赋值方法
    Student s3;
    s3.setName("公鸡大鱼怪");
    s3.setId(3);
    s3.showstudent();
    return 0;
}
示例

(2)将属性和行为加以权限控制
类在设计时,可以把属性和行为放在不同的权限下,加以控制
访问权限有三种:
1、public 公共权限
2、protected 保护权限
3、private 私有权限

#include <iostream>
#include <string>

using namespace std;

//访问权限
//公共权限 public 成员类内可以访问,类外可以访问
//保护权限 protceted  成员类内可以访问,类外不可以访问
//私有权限 private 成员 类内可以访问,类外不可以访问

//其中private 和 protected 在继承时会有不同
class person
{
public:
    //公共权限
    string m_Name;//姓名

protected:
    //保护权限
    string m_Car;//汽车

private:
    //私有权限
    int m_Password;//银行卡密码

public:
    void func()
    {
        m_Name = "王五";
        m_Car = "拖拉机";
        m_Password = 35157210;
    }
};
/*上述的各种类型在类内均可以访问*/

int main()
{
    //创建具体对象
    person p1;
    p1.m_Name = "李四";//此时在类外可以访问
    //p1.m_Car = "宝马"; 此时会报错,类外不可访问
    //说明,保护权限内容,在类外访问不到
    /* p1.m_Password = 123;会报错,私有权限内容,在类外时访问不到的
    成员函数同理*/

    return 0;
}

3、struct 和 class 区别
两者区别在于默认访问权限不同 struct 默认权限为公共,class 默认权限为私有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值