sqrt()开方函数
fabs()求绝对值
Fibonacci数列
f1,f2=1
从第三个月开始
f1 = f1 + f2;
f2 = f1 + f2;
设置宽度setw()
最大公约数
do
{
r = a % b;
a = b;
b = r;
}while (r != 0);
inline内联函数
函数原型时加关键字
static静态存储
string有计算长度的函数:string.size()
&a引用
const三种指针
1.const int m=1;
const int *p=&m;
没办法通过p把m改值,但可以把p指向别的如n。
2.const int m=1;
int *const p=&m;
你不能把p改成指向n,但是你可以 *p=3;改变数值。
3.const int *const p=&m;
什么都不能改变
new的使用
指针变量=new 数据类型;
*p=new int(初始化的值);
char *str=new char[10];
delete []str;
new二维数组的方法:
int**p=new int * [m];
for(int i=0;i<5;++i)
{
p[i]=new int [n];
}
复制构造函数:
建立新对象时用已经存在的对象去初始化新对象
结构体默认为公有,类默认为私有
静态数据成员static,类外初始化
常成员函数类内类外都不可省略const
const成员不能访问非const成员函数
友元函数friend单向,非传递
friend void 类::函数(参数表)
友元类:
friend class 类名;
组合类的对象释放时,调用析构函数的顺序与调用构造函数的顺序相反
多个基类共同派生出一个新的类称为多继承方式
派生类不会继承基类友元函数
虚基类virtual
class base:virtual public Base
基类指针可以指向派生类对象
派生类对象可以赋值给基类对象
派生类对象的指针可以转换为基类对象指针
虚函数virtual重新定义时virtual可以省略
虚函数必须是类的成员函数
纯虚函数:
virtual 返回值类型 函数名(参数表)=0;
含有纯虚函数的类为抽象类,不能生成对象
运算符重载operator
友元函数重载运算符
friend 类名 operator符号(参数表)
成员函数传递的参数比友元函数少一个
双目运算符不能重载为友元函数:=、()、【】
前置运算符按一元运算符重载int operator++();
后置运算符按双目运算符重载int operator++(int);
//“+”运算符进行重载
friend Complex operator+(Complex&, Complex&);
//“<<”运算符进行重载, 为了能够连续输出cout<
friend ostream operator<<(ostream&, Complex&);
{
cout<<"(<,"<)";
}
//“>>”运算符进行重载
friend istream operator>>(istream&, Complex&);
模板:template
类模板的成员函数是函数模板,在类外定义时应按函数模板定义
向量voctor:
voctor v;
empty();判断v是否为空
front();返回第一个元素
back();返回最后一个元素
insert(p,x);在p之前插入x,返回插入位置
erase();删除所有元素
begin();返回首元素
end();末元素位置
push_back(数);
栈stack:
push();栈顶压入一个元素
pop();栈顶删除一个元素
top();栈顶返回一个元素引用
empty();判断是否为空
size();返回栈中元素个数
算法:
迭代器:
vector::iterator start=vector char.begin();
put();
cout.put(‘a’);
get();
cin.get(a);
getline()读取一行,终止字符结束
write();
cout.write(数组名,长度);
ignore();
cin.ignore(5,‘a’);表示从当前指针位置开始忽略cin输入的五个字符,或者遇到‘a’就不再往后跳了。
ofstream out;输出流
out.open(“位置”,ios::out);
ifstream in;输入流;
in.open("",ios::in)
fatream both;
both.open("",ios::in||ios::out)
.close();