C++ Primer问题总结(5)

1.第7章

1.定义在类内部的方式是隐式的inline函数。
2.在成员函数内部,我们可以直接使用调用该函数的对象的成员,而无需通过成员访问运算符来做到这一点,因为this所指的正是这个对象。this -> bookNo
3.this指针不能指向一个常量成员,这是因为this指针是一个常量指针(顶层const),这意味着它只能指向对象的地址而可以通过它改变对象的值,而将一个常量传给它,会出现修改对象的值的风险。
4.左值可以当成右值使用,实际使用的是它的内容(值)。但是右值不能当成左值。
5.返回引用的函数的到左值,其他返回类型得到右值,如果返回的是一个数组下标、对象,要返回引用。如果返回的是一个取地址符,不要返回引用。
6.只要类的对象被创建,就会执行构造函数,如果对象没有初始值会使用默认构造函数为其进行默认初始化。
7.如果不需要改变默认构造函数的话,并且有多个构造函数,这个时候可以用=default

Sales_data() = default;

8.class和struct关键字都可以定义类,唯一的区别是,struct和class的默认访问权限不太一样。
如果我们希望定义的类所有成员是public的,使用struct定义类,这是因为struct默认成员都为public类型;而class默认成员都为private类型。
这是它们两种方式定义类唯一的区别。
9.可变数据成员mutable
有时我们希望能修改类的某个数据成员,即使是在一个const成员函数内,可以通过在变量的声明中加入mutable关键字做到这一点。

mutable size_t access_ctr;//即使在一个const对象内也能被修改

10.当我们提供一个类内初始值时,必须以符号=或者花括号表示。

2.第8章

1.类型ifstream和istringstram都继承自istream。
2.Exercise 8.1

#include <iostream>
#include<string>
using namespace std;
istream & in(istream & a)
{
	string buf;
	while (a >> buf)
		cout << buf << endl;
	a.clear();
	return a;
}
int main()
{
	istream& is = in(cin);
}

3.unitbuf和nounitbuf操纵符

cout<<unitbuf;//立即刷新缓冲区
cout<<nounitbuf;	//回到正常的缓冲方式

可以将ofstream对象传递给形参为ostream& 类型,这是因为基类引用(指针)可以指向派生类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值