- 若类中无无实参构造函数,编译器会自动创建一个,若无析构函数,也会自动创建,若数据域有对象类型时应显示的创建析构函数
- 拷贝构造函数和赋值符号(=)都为浅拷贝(按值传递基本类型,按引用传引用类型)
- 一个函数在类声明时实现,自动成为内联函数
- inline 是一种"用于实现的关键字",而不是一种"用于声明的关键字"关键字inline 必须与函数定义体放在一起才能使函数成为内联,仅将inline 放在函数声明前面不起任何作用。
- (*this).radius = this->radius
- string类
字符串运算符:[],=,+,+=,<<,>>,==,!=,<,>,<=,>=
s[2]=s.at(2);
- 对象传递按值传递进行,也可加 & 按引用传
- 构造函数初始化列表
//ClassName(parameterList): datafield1(value1),datafield2(value2){}
Circle::Circle():radius(1){} = Circle::Circle(){ radius =1;}
类中const常量,必须在初始化列表中初始,不能使用赋值的方式初始化
- #ifndef CLASSNAME_H
#define CLASSNAME_H
#endif
- 静态变量,静态函数既能通过className:: 来访问,也可以通过类对象来访问
- 友元类 friend
一对一:合成 一对多:聚合()
- 向量类 vector 比数组更加灵活vectotNmae.at(i)=vectorNaem[i] <vector>
- 子类调用基类构造函数时只能在实现中调用,不能在声明中调用(不显示调用时自动调用基类无实参构造函数)
- 构造函数连,析构函数连
- 函数覆盖 //circle.Geometric::toString();
- 多态,动态绑定 virtual,实现动态绑定必须保证顶层基类中函数为虚函数,且参数 为引用或指针,基类中的virtual 函数在子类中自动为virtual,不必显示声明
- public,protected,private
- 抽象函数(纯虚函数,声明时不实现,子类中实现) virtual double gerArea()=0;
有抽象函数的类为抽象类,抽象类不能声明具体实例
- 动态类型转换 Circle *p=dynamic_cast<Circle*>(p);
- typeid(*p或者x).name()
- ofstream 对象打开文件会清除文件内容 close() fail() eof()
- input.getline(city,40,'#')
- char get() | istream * get (char &ch) 读到ch中
char get(char array[],int size, char delimitChar) 读到数组
会在末尾加一个 getline()不加
- void put(char ch) //output.put(input.get());
- fstream模式打开文件 http://www.cnblogs.com/summerRQ/articles/2375747.html
- <iostream>中声明了getline函数:
istream::getline
istream& getline (char* s, streamsize n );
istream& getline (char* s, streamsize n, char delim ); - <string>头文件中中声明了getline函数:
istream& getline ( istream& is, string& str, char delim );
istream& getline ( istream& is, string& str ); - <fstream> 检测流状态http://zh.cppreference.com/w/cpp/io/basic_fstream
- streamObject.write(char * ch, int size)
binaryio.write(reinterpret_cast<char *>(&value),sizeof(value));
streamObject.read(char * ch, int size)
- seekg()输出,seekp()输入
http://zh.cppreference.com/mwiki/index.php?title=Special%3A%E6%90%9C%E7%B4%A2&search=seek
- r1.operator<(r2) = r1 < r2 不可重载?: . .* ::
- operator double();
- catch(type)
- <exception><stdexcept>
- template<typename T> template<typename T=int ,int capacity>