最近又要用c++噜。。这一遍要掌握(复习)点新知识( ̄Д ̄)ノ
对象:一块能存储数据&&具有某种类型的 内存空间
C++11 列表初始化:
引用(左值引用):给对象起了别的名字 && 初始值必须是个对象
1.引用主要用在参数传递上
2.比值传递效率高很多,引用传递开销小
3.但凡能够用引用的地方都能用指针去实现:指针太强大了,长时间不down机极有可能会出现内存泄漏
int name = 1024;
int &rename = name;
//int &anothername; //引用必须初始化
cout<<"name:"<<name<<" &name:"<<&name<<endl;
cout<<"rename:"<<rename<<" &rename:"<<&rename<<endl;
输出的结果为
name:1024 &name:0x7fff5fbff73c
rename:1024 &rename:0x7fff5fbff73c
( ・᷄ὢ・᷅ )感觉和指针好像。。。
但是指针是个对象,能被赋值,拷贝……
const
大一上课老师:能用#define 用#define; 我:(。ì _ í。)啥是define
大三上课老师:const 比#define好~; 我:~(・・?))啥
新get到了const的引用
const type &smg = 可以是一个表达式|字面值
还有下面这种操作:绑定临时量
double d = 1.23;
const int &i = d;
实际上
const int temp = d;
const int &i = temp;
const 指针
int var = 8;
int *const varptr = &var;
const int invar = 8;
const int *const invarptr = &invar;
*varptr = 0;//可以,*const 说明指针不能变
*invarptr = 0;//报错,const int指向常量的指针
终于解决了遇到的成员函数
string isbn() const {return this->bookNO;}
this 的类型‘ className *const’ 酱紫的话 就不能绑定到 ‘const className Object’ 上了
这样写成员函数提高了函数的灵活性