C++ primer 第七章

第七章 类

概括
https://blog.csdn.net/jx232515/article/details/53027008

类在编译时,先编译数据成员,然后才编译函数成员
定义在类内的函数,隐式为inline的函数

const成员函数
a) this 指针是个class* const p型的常量指针,其指针的内容不能改变;
类的const 对象, 其this指针是const class* const p型的指针,其指针的内容和指针内容所存储的对象都不能改变

b) 类的const对象不能调用类的非const的成员函数,是因为
不能把const class* const p型的this指针隐式赋值给class* const p型的形参,为了将该形参也声明为const class* const p型, 需要给成员函数后面加const,即const成员函数
c) 类的非const对象既能使用非const成员函数,也可使用const成员函数,因为class* const p可以赋值给const class* const p

类内初始值:在类中,对数据成员用= 或{} 赋初值的方式。
字面值类型:
算数类型、引用、一些指针是字面值类型
constexpr int a = 0;//算数类型int是字面值类型;
某些类也是字面值类型,这些类叫做字面值常量类假设类Debug是字面值常量类。那么:
constexpr Debug debug(args);//生成一个constexpr对象-debug;

a) constexpr常量表达式:在编译期间就可算出结果的表达式
https://blog.csdn.net/qq_37568748/article/details/82287153

b) constexpr的函数(包括字面值常量类的constexpr的构造函数),当其参数是const时,则返回类型是const,当其参数不是const时,则返回类型不是const

static数据成员和函数成员
static数据成员需要在类内声明,类外定义
static函数成员不会有隐式的this指针,可以作为callback函数,但是在static函数成员不能访问类的其他数据成员,解决方法:可以把对象的地址显示传入static函数成员,然后在static函数中显示调用该对象的数据成员。
static函数可以调用类的非static函数成员

友元函数和友元类
http://c.biancheng.net/view/169.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值