我是靠谱客的博主 俊秀柠檬,最近开发中收集的这篇文章主要介绍C++ Primer 练习笔记-第七章 类第七章 类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第七章 类

7.1 定义抽象数据类型

成员函数定义和声明的方式和普通函数差不多,但是成员函数的声明必须在类的内部,定义既可以在类的内部也可以在类的外部

非成员函数作为接口存在,定义和声明都在类的外部

例如,Sales_data类的部分定义如下

struct Sales_data {
    std::string isbn() const { return bookNo; }
    Sales_data& combine(const Sales_data&);
    double avg_price() const;
    std::string bookNo;
    unsigned units_sold = 0;
    double revenue = 0.0;
};
Sales_data add(const Sales_data&, const Sales_data&);
std::ostream &print(std::ostream&, const Sales_data&);
std::istream &read(std::istream&, Sales_data&);

定义在类内部的函数是隐式的inline函数

引入 this

成员函数通过一个名为this的额外的隐式参数来访问调用它的那个对象

std::string isbn() const{ return this->bookNo; }

引入 const 成员函数

isbn 函数的另一个关键之处是紧随参数列表之后的 const关键字,这里,const 的作用是修改隐式 this 指针的类型。

紧跟在参数列表后面的 const 表示 this 是一个指向常量的指针,像这样使用 const 的成员函数被称为常量成员函数 (const member function)

因为 this 是指向常量的指针,所以常量成员函数不能改变它的对象的内容

常量对象,以及常量对象的引用或指针都只能调用常量成员函数

类作用域和成员函数

值得注意的是,即使 bookNo 定义在 isbn 之后,isbn 也还是能够使用 bookNo

编译器分两步处理类:首先编译成员的声明,然后才轮到成员函数体,因此,成员函数体可以随意使用类中的其他成员而无须在意这些成员出现的次序。

在类的外部定义成员函数

  • 在类的外部定义成员函数是,成员函数的定义必须与它的声明匹配,即返回类型、参数列表和函数名都得与类内部的声明保持一致
  • 成员被声明成常量成员函数,定义也必须在参数列表后明确指定 const 属性
  • 类外部定义的成员的名字必须包含它所属的类名
double Sales_data::avg_price() const {
    if (units_sold)
        return revenue/units_sold;
    else
        return 0;
}

最后

以上就是俊秀柠檬为你收集整理的C++ Primer 练习笔记-第七章 类第七章 类的全部内容,希望文章能够帮你解决C++ Primer 练习笔记-第七章 类第七章 类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部