Job Hunting 之 C++复习 (1)

找到好工作,生活才快乐。要开始找工作了,复习下C++。

 

 

Book: Essential C++

 

(1)不加using namespace std;的后果是什么?

basicio.cpp:24: error: ‘string’ was not declared in this scope
basicio.cpp:26: error: ‘cout’ was not declared in this scope
basicio.cpp:26: error: ‘endl’ was not declared in this scope

 

(2)C++中如何进行变量初始化?

 

(3)class string的初始化方式有哪些?

 

 

 

(4)记忆<<, >>流操作符的方法

按照常规的口语顺序,“左右”,“读写”,顺序对应,左对应读,右对应写。

 

(5) C++中的=赋值背后的内涵

1. 简单赋值

2. 隐式自动调用copy constructor

3.

 

(6) C++中的==在不同情况下表示的含义

 

(7) vector的初始化

必须是已存在的元素才能用下标操作符进行索引。通过下标操作进行赋值时,不会添加任何元素。

 

 

 (8) const二三事

// 语法上没有任何问题,但是const修饰符的目的是说成员变量在val()函数内不可以修改,那么一般来说,val()返回的_val也不应该能够被修改。由于函数前没有const修饰,所以_val实际上向外部开放了。

MyClass & val() const

{

     return _val;

}

 

// 正确的写法:

const MyClass & val() const

{

     return _val;

}

 

// 最完美的定义方法:

class val_class{

    const MyClass & val() const {return _val;}

    MyClass &val(){ return _val; }

};

 

void sample(const val_class *pbc, val_class &rbc)

{

    pbc->val(); // 调用const版

    rbc.val(); //调用non-const版

}

 

 

利用mutable修饰符,可以突破const的不可修改限制。例如mutable int _next;

 

 

(9)后置++重载的特殊性

为了和前置++加以区别,后置++的重载声明就行了一些变通,参数表中加入了一个冗余的int,实属特例:

inline MyObject & operator++(int){}

 

 

 

(10)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值