《C++Primer》3.13 类

类背后蕴含的基本思想是数据抽象和封装。他们可以提供两个优点:1.避免类内部出现无意的、可能破坏对象形态的用户级错误。2.随时间推移可以根据需求改变或缺陷报告来完善类实现,而无须改变用户级代码。

可以通过typedef,使用类型别名来简化类

在声明之后、定义之前的类是不完全类型,而创建类的对象之前,必须完整地定义该类。

显式引用this指针的必须情况:当需要将一个对象作为整体引用而不是引用对象的一个成员时。

某种类可能具有某些操作,应该返回引用,逻辑上可以添加下列操作:

1.一对set操作,将特定字符或光标指向的字符设置为给定值

2.一个move操作,给定两个index值,将光标移至新位置。

在调用move和set操作时,必须返回一个引用,一般返回this指针可以通过对其进行解引用访问this指向的对象。

在普通的非const成员函数中,this的类型是一个指向类类型的const指针。可以改变this所指向的值,但不能改变this所保存的地址。在const成员函数中,this的类型是一个指向const类类型对象的const指针。既不能改变this所指向的对象,也不能改变this保存的地址。

可变数据成员:有时(但不是很经常),我们希望类的数据成员(甚至在const成员函数内)可以修改。这可以通过声明为mutable来实现。

可变数据成员永远都不能为const。

在类作用域之外,成员只能通过对象或指针分别使用成员访问操作符"."或"->“来访问。

名字查找的步骤:

1.类成员声明的名字查找

2.类成员定义中的名字查找

3.类成员遵循常规的块作用域名字查找

4.函数作用域之后,在类作用域中查找

5.类作用域之后,在外围作用域中查找

6.在文件中名字的出现处确定名字

又一次出现构造函数。只要创建类类型的对象,都要执行构造函数。

一个类哪怕只定义了一个构造函数,编译器也不会再生成默认构造函数。合成的默认构造函数使用与变量初始化相同的规则来初始化成员。

类通常应定义一个默认构造函数

抑制由构造函数定义的隐式转换,为转换而显式地使用构造函数

友元(friend)机制允许一个类将对其非公有成员的访问权授予指定的函数或类。

可以设置某个类为友元,也可以设置某个类的特定成员为友元

static成员是类的组成部分但不是任何对象的组成部分,因此,static成员函数没有this指针,此外,static成员函数不能被声明为const,也不能被声明为虚函数。

static数据成员可以声明为任意类型,甚至是const

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值