【深度C++】之“类与结构体”

0. 抽象数据类型

类(class)结构体(struct) 都是C++中的自定义数据类型,是使用C++实现面向对象编程思想的起点。

类的基本思想是数据抽象(data abstraction)封装(encapsulation)

数据抽象是一种依赖于接口(interface)实现(implementation) 分离的编程技术。类的接口包括用户所能执行的操作;类的实现则包括类的数据成员、负责接口实现的函数体以及类定义所需的各种私有函数。

封装实现了类的接口和实现的分离。封装后的类隐藏了它的实现细节,类的用户只能使用接口,无法看到实现。

因此也将结构体统称为抽象数据类型

因为类和结构体的区别,仅仅是默认访问权限的区别,所以以后只使用类来描述相关内容。

关于类,我们需要了解:

  1. 类的声明&定义
  2. 成员数据
  3. 成员函数
  4. 访问控制(类与结构体的区别)
  5. 类的初始化——构造函数
  6. 类的拷贝、赋值
  7. 类的移动
  8. 类的销毁——析构函数
  9. 类的其他特性
  10. 运算符重载

1. 类的声明&定义

声明一个类,相当于声明一种新的类型。

class MyClass;

上述代码告诉编译器我有一个自定义数据类型,类型名是MyClass

定义一个类,我们要定义类的成员。类的成员包括三类:

  1. 类型成员
  2. 数据成员,或成员数据
  3. 成员函数

通常将类的定义写在.h文件中:

// MyClass.h

#ifndef MY_CLASS_H
#define MY_CLASS_H

class MyClass {
public:
    using Pos = unsigned int;
private:
    // 数据成员
    int i;
    char c;
public:
    // 类的成员函数
    void print();
};

#endif // MY_CLASS_H
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值