C++语法-面向对象(3)

面向对象

概念

一切皆对象,一个程序就是一组对象组成的整体,程序的功能由对象之间相互传递消息来实现的。

在这里插入图片描述
C++中对象都有类型,同一种类型的对象具有相同的属性和功能。

如何描述对象

抽取描述对象的感兴趣的共同特征
在这里插入图片描述
对象的共同特征由属性和功能组成

使用变量描述共同的属性
使用函数描述共同的功能

如何在C++中描述对象的类型

使用结构体(struct)描述

C++对结构体的语法进行了扩展,结构体中不但可以有成员变量,也可以有成员函数。因此结构体可以用来描述对象的类型,在C++中,对象的类型叫类

使用类(class)描述对象的类型

class也可以用来描述对象的类型,语法和struct几乎一致类中的成员具有访问属性,访问属性分为三类:

访问属性

public — 公有属性 可以在类外和类内访问该成员

protected — 保护属性 可以在类内部和子类中访问该成员

private — 私有属性 只能在类内部访问

类成员的访问属性就是实现封装的基础,封装意思就是私有的数据隐藏,对外的接口公开。struct中的成员的默认访问属性是公开的,class中的成员的默认访问属性是私有的。

在实际开发中,应该显示指定成员的访问属性:

class 类名{
public:
公有成员;
protected:
保护成员;
private:
私有成员
};

一个类中同个访问属性可以多次出现

通常把公开的成员写在类的最前面,私有成员写在类的最后

注意:

一般来说,成员变量总是设置为私有属性,如果类外需要访问就提供公开的接口成员函数。

在C++不推荐使用struct,而应该使用class

练习:

设计一个Animal的类,包含name(char [20]),age(int)的私有成员,weight(float)的保护成员,提供show(打印信息),设置name,设置age的对外接口(公开)。

/*08-构造Animal类*/
#include <iostream>
#include <cstring>

using namespace std;

class Animal {
public:

    void show() {
        cout << name << ":" << age << ":" << weight << endl;
    }

    //设置name
    void set_name(const char *s) {
        strcpy(name, s);
    }

    //设置age
    void set_age(int a) {
        age = a;
    }

    //设置体重
    void set_weight(float w) {
        weight = w;
    }

protected:
    float weight;
private:
    int age;
    char name[20];
};

int main() {
    Animal an;//调用无参构造函数
    an.set_name("小飞飞");
    an.set_age(4);
    an.set_weight(14.4f);
    an.show();
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值