虽然写了不少的c++程序,但是都比较浅显,一些基础的概念、定义都模模糊糊不清楚,现在有点时间,看一下C++ Primer,对一些不明确或者以前忽略的基础性知识记录,巩固一下(PS,给自己看的)。
-
关于引用:
1)引用不是对象,是绑定一个对象,相当于对象的别名。 2)所以,引用必须被初始化:其形式为 数据类型 变量 = 值; 形如,int a =10; 数据类型 &引用名 = 变量; 形如,int &b = a;
-
const限定符:
1)必须初始化 2)非常量引用不可以指向一个常量对象,如: const int ci = 1024; int &r2 = ci; 这样写是错误的 3)非常量指针也不可以指向常量指针, 4)顶层和底层const,指针问题: int i = 0; int *const pi = &i; 顶层const,即指针是常量 const int *p2 = &i; 底层const,即指针指向的对象是常量
-
关于const的用法:
1)相当于c中的#define,用来定义一个变量 2)放在函数前,形如:const int *getpointer(); const修饰函数返回值,此值是常量 3)放在函数后,形如,int GetValue() const; const修饰函数,表示此函数是常函数。常函数不能调用其他非常量函数,不能修改常量变量。此函数的作用是增强程序的稳健性,某些不能被修改的变量放在此函数执行。
-
关于命令空间
1)头文件不应该包含using声明,因为头文件的内容会被拷贝到所有引用他的文件中去,可能会引发冲突。 2)为什么要用命名控件,由多人合作完成的项目,代码中可能有重复的变量等内容。命名控件就是为了解决这类问题。形式如下:
namespace Liming
{
class student
{
public:
int number;
string name;
};
}
使用如下:
Liming::student
这样别人的student和李明的student就不会重复了。
-
迭代器
1)迭代器的作用与下表运算符的作用相似,但只有极少数的容器会支持下表运算,大部分标准容器都支持迭代器 2)常用形式: for(auto it = s.begin();it != s.end();++it) {}
大概就先写这点了