首页 > 编程语言 >[学习笔记]《C++ Primer》第七章 类

[学习笔记]《C++ Primer》第七章 类

时间:2023-03-09 22:45:20浏览次数:40  
标签:const 函数 成员 Sales C++ 默认 第七章 Primer 构造函数

this

this是常量指针,指向非常量版本的类

MyClass *const

成员函数(member function)

所有成员都必须在类的内部声明,但成员函数体可以定义在类内或类外。

->成员函数的调用:调动成员函数时,this作为函数的隐式形参,实现对类成员的访问。

-->const 成员函数(常量成员函数)

Type function const (){return type;}

将const关键字放在成员函数的参数列表后,使this指针指向常量。

const MyClass *const

NOTE:常量对象,以及其引用和指针只能调用 const 成员函数

-->在类的外部定义成员函数

使用作用域运算符: MyClass:: 表示代码位于类的作用域内。

double Sales_data::avg_price() const {
    return units_sold == 0 ? 0 : revenue / units_sold;
}

-->类的非成员函数

非成员函数函数在概念上属于类,但是不定义在类中,一般与类声明在同一个头文件中。

构造函数

合成的默认构造函数(synthesized default constructor)

MyClass() = default;

数据成员初始化规则:类内初始值 > 默认初始化

类中的内置类型复合类型的成员全部有类内初始值时,才适用于默认构造函数。

构造函数初始值列表

Sales_data(string &s,unsigned n):bookNo(s),units_sold(n){};

NOTE: 使用默认构造函数的方式初始化列表外的数据成员。

NOTE: 构造函数可以在类内声明,外部定义,需要加上作用域运算符

类的访问控制

访问说明符:public, private

class和struct的区别

默认访问权限不同(无访问说明符限制),struct默认为public,class默认为private。

友元

允许其他类或函数访问类的非public成员。

友元声明

友元声明只能出现在类内部,并且不能代替函数声明。

friend Sales_data add(const Sales_data &lhs, const Sales_data &rhs);

标签:const,函数,成员,Sales,C++,默认,第七章,Primer,构造函数
From: https://www.cnblogs.com/dltsj/p/17201763.html

相关文章

  • [Primer] 第 18 章 探讨 C++ 新标准
    第18章探讨C++新标准18.1复习前面介绍过的C++11功能新增longlong和unsignedlonglong类型。使用大括号进行内置数据或对象的初始化,可以不添加等号;也提供......
  • 记录一下linux系统编译C++版opencv
    安装:https://blog.csdn.net/NeoZng/article/details/126065521装完后:查看头文件和库文件目录:pkg-config--libsopencv4pkg-config--cflagsopencv4查看OpenCV版本......
  • [Primer] 第 16 章 string 类和标准模板库
    第16章string类和标准模板库16.1string类16.2智能指针模板类要创建智能指针对象,必须包含头文件<memory>。离开代码块后,智能指针将自动释放内存。声明只能指针......
  • C++常用遍历算法 transform
    功能:将容器搬运到另一个容器#include<iostream>#include<vector>#include<functional>#include<algorithm>usingnamespacestd;//遍历函数transformclassTr......
  • c++编程,对2048小游戏的扩充
    原游戏网址:(210条消息)C++小游戏(原创)——2048_c++小游戏下载_Ziwen.紫闻的博客-CSDN博客源代码: #include<iostream>#include<stdlib.h>#include<time.h>#include<......
  • c++ 代码技巧
    数学运算性能大多数数据运算不存在性能问题,但是相对来说,整型的除法运算还是比较昂贵的。参考下面的例子:uint32_tBM_S1(uint64_tv){uint32_tresult=0;do{......
  • C++常用遍历算法 for_each
    #include<iostream>#include<vector>#include<functional>#include<algorithm>usingnamespacestd;//遍历函数for_each//普通函数voidprint1(intval){......
  • c++之虚基类
    1.虚基类在多继承关系中,如果一个派生类的从两个父类那里继承过来,并且这两个父类又恰恰是从一个基类那里继承而来。那这样就麻烦了,因为你可能继承了两份一样的成员!这不仅多......
  • 斯坦福 UE4 C++ ActionRoguelike游戏实例教程 02.AI自定义任务和观察器中断
    斯坦福课程UE4C++ActionRoguelike游戏实例教程0.绪论概述本文章对应课程第十一章42节。这篇文章会进一步地为AI添加新功能,创建自定义任务,允许AI发射子弹,并且讲解观......
  • C++笔记--函数、预处理
    1函数1.1函数的介绍1.1.1函数的概述函数是c语言的功能单位。实现一个功能可以封装一个函数来实现。定义函数的时候一切以功能为目的,根据功能去定函数的参数和返回值......