类(一)

定义抽象数据类型

定义类的关键字包括structclass
使用struct定义类

struct Sales_data{
  std::string isbn() const{ return bookNo;}    // 成员函数
  std::string bookNo;
}

使用class定义类

class Sales_data{
  std::string isbn() const{ return bookNo;}    // 成员函数
  std::string bookNo;
}
  • this关键字

在成员函数内部可以使用this关键字,代表对象本身。

  • 编译器如何编译类

首先编译成员的声明,然后再编译函数体

  • 在类的外部可以定义成员函数
double Sales_data::avg_price() const{
  return 0;
}
  • 定义返回this对象的函数
Sales_data& Sales_data::conbine(const Sales_data &rhs){
    return *this;
}

定义类相关的非成员函数,一般与类在同一个头文件中

  • 构造函数

如果没有提供任何构造函数,则使用默认构造函数进行对象的初始化,这一工作由编译器完成。默认构造函数有以下行为进行初始化

  1. 类内有初始值,用初始值来初始化成员

2.默认初始化该成员

访问控制与封装

访问权限

  • public 程序内可被访问
  • private 类内可用

友元
friend通过友元允许其他类或者函数访问非公有成员,对于友元的定义只能出现在类定义的内部

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、类 1、C++扩充的结构体一般格式如下: struct 结构名 { 数据;//数据成员 函数;//成员函数...
    割麦子洁阅读 4,857评论 0 0
  • 类的基本思想是数据抽象和封装。数据抽象是一种依赖于接口和实现分离的编程技术。 类的接口:用户所能执行的操作。 类的...
    丶不霁何虹阅读 4,046评论 0 2
  • 1. 认识类与对象 (1)什么是类(class)? 类(class)是类型(type),是用户自定义的类型。为什么...
    __bba3阅读 3,188评论 0 0
  • #1.定义抽象数据类型1.1 设计Sales_data类1.2 定义改进的Sales_data类1.3 定义类相关...
    MrDecoder阅读 3,073评论 0 0
  • 类的基本思想是数据抽象data abstraction和封装 encapsulation。数据抽象是一种依赖于接口...
    居者有其屋阅读 2,910评论 0 0