随便写写C++,看看Essential C++

1.所谓“类”,是用户自定义的数据类型,class机制让我们得以将数据类型加入到我们的程序中,并有能力识别他们。class的定义一般分为两步:一是在头文件中声明,另一文件是程序代码文件,包含了这些操作行为的实现内容。

2.初始化可以使用赋值符号”=” : int num_tries = 0;
也可以使用”构造函数语法” : int num_tries(0); 因为如果对象不是内置类型或者对象需要多个初值,就需要这种多值初始化函数法了。

3.不改变的值应该加上const ,以防止 a==1这种判断语句错写成 a=1 而发现不了。

4.

const int seq_cnt = 6;
vector<int> fibonacci,lucas,pell,triangular,square,pentagonal;
vector<int> *seq_addrs[seq_cnt] = {
    &fibonacci,&lucas,&pell,
    &triangular,&square,&pentagonal
};//seq_addrs是一个array,所持有的值是vector<int> *的值。

5.点操作符可以用来选择我们的对象所做的操作,但是用指针时,就要使用 -> ,

vector<int> *pv = 0;
vector<int> f;
pv = &f;
if(!pv->empty()){}// 

6.

int *pi=0;
pi = new int(1024);
pi = new int[24];//heap中都是未经初始化的
delete pi;//不经过delete,不会释放,造成内存泄露

7.P53

//头文件声明其中指定了参数默认值
//让我们称此头文件为NumericSeq.h
void display(const vector<int>&,ostream&=cout);

//程序代码包含上述头文件,
//函数定义处,并没有指定参数的默认值
#include "NumericSeq.h"

void display(const vector<int> &vec,ostream &os){
    for(int ix = 0;ix < vec.size():++ix)
        os << vec[ix] << ' ';
    os << endl;
}

8.在函数前面加上inline只是对函数的一个要求,并不是强制的。

9.重载是指 参数列表 不同(个数或类型)

10.

bool seq_elem(int pos,int& elem,
              const vector<int>* (*seq_ptr)(int)){//调用一个函数指针

}

11.泛型算法系通过function template技术,达到”与操作对象的类型相互独立“的目的。而实现”与容器无关“的诀窍,就是不要直接在容器身上进行操作,而是借由一对iterator (first 和 last),标示我们要进行迭代的元素范围。

12.*(array + 2)如果array是指针,指的是地址1000,那么array+2是等于1000+sizeof(ptr)*2

P72/200

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值