-
1. 模板代码不能分离编译(类的声明与定义都要写在.h文件中)。 2. 类模板类外定义,每一个成员函数前都要写上template<typename T, int KSize>查看全部
-
A. 函数模板的参数个数可以是一个也可以是多个。 B. 函数模板参数个数不能为0个,因为这样则没有必要使用函数模板。 C. 使用函数模板时,需要指定模板参数,此时的函数称为模板函数。 D. 当需要定义多个功能相同,数据类型不同的函数时,可以使用函数模板来定义。查看全部
-
1. 函数模板的关键字:template class typename(其中后两者相同) 2. 函数模板: 类型模板 template<class T> T display(T a,T b ) { } 调用的时候: display(100,2);自动判断//或者 display<int,int>(100,2); 变量作为参数 template<int size> { } 多参数模板 template<class A,calss B> void display(A a, B b) {} {} 2. 定义出函数模板时,函数模板并不是相互重载的关系,因为在内存中只是将函数模板定义出来,并不能在内存中产生任何代码,只有在使用时才产生相应的函数代码,此时这些函数相互间才能称得上重载关系。查看全部
-
A. 运算符重载可以使运算符具有新的功能。 B. 运算符重载使用关键字operator C. 有些运算符必须使用成员函数重载,有些则必须使用友元函数重载。如索引运算符重载就不可以使用友元函数重载。 D. ++运算符重载需要区分前置++重载和后置++重载。查看全部
-
成员函数重载: class{Coordinate& operator-();} Coordinate & Coordinate::operator-(){m_ix=-m_ix;m_iy=-m_iy; return *this;} Coordinate coor1(3,5); -coor1;//coor1.operator-(); 友元函数重载: class{friend Coordinate& operator-(Coordinate &coor);} Coordinate& operator-(Coordinate &coor){coor.m_ix=-coor.m_ix;coor.m_iy=-coor.m_iy; return *this;} -coor1;//operator-(coor1); ++的前置重载: class{ Coordinate& operator++();} Coordinate& Coordinate::operator++(){m_ix++;m_iy++; return *this;} ++coor1;//coor1.operator++(); ++的后置重载: class{ Coordinate operator++(int);} 【注意:返回值不再是引用,而是Coordinate的一个对象。int是一个标识,它标识当前的++符号做的是后置重载。使用时int并不传入任何值,因为不去使用它,即使传入任何值也没有意义。】 Coordinate operator++(int){ Coordinate old(*this); m_ix++;m_iy++; return old;} coor1++;//coor1.operator++(0); 【系统默认传入0,只是表达出这是一个调用后置++的运算。】查看全部
-
静态成员函数不能调用非静态的数据成员或非静态成员函数,反之普通成员函数则可以调用静态的数据成员和静态成员函数。查看全部
-
A. 定义静态成员函数和静态数据成员都需要static关键字。 B. 公有静态成员函数可以被类直接调用。 C. 静态成员函数只能访问静态数据成员和调用静态成员函数。 D. 静态数据成员不能在构造函数初始化,必须单独初始化。查看全部
-
1. 静态数据成员并不依赖对象而是依赖于类,不实例化对象,静态数据成员仍然在内存当中。普通数据成员实例化之后才能存在。 2. 静态数据成员初始化:类型 类名::成员名=初值; int Tank::s_iCount=0; 3. 静态成员函数注意事项: ① 在静态成员函数当中,无法调用非静态成员函数和非静态数据成员。 ② 静态数据成员必须单独初始化。 ③ 静态数据成员只有一份,且不依赖对象存在。 4. 如图,静态数据成员及成员函数调用的方法。查看全部
-
1. 传入当前类的对象或引用或指针,其中传入引用或指针的速度更快,所以提倡形参选择使用引用或者指针,如: void printXY(Coordinate &c) 2. 因为传入的对象是引用,所以调用函数时只需传入对象名即可。如:Coordinate coor(3,5); printXY(coor); 3. 将一个函数声明为一个类的友元函数后,它可以通过对象名访问类的公有、私有、保护成员。如:friend void Circle::printXY(Coordinate &c);后可用Circle circle; circle.printXY(coor);查看全部
-
运算符重载:给原有的运算符赋予新的功能 本质:函数的重载 两种方式:友元函数的重载和成员函数的重载查看全部
-
静态成员函数和静态数据成员的注意事项查看全部
-
随类的产生而产生 静态数据成员:并不依赖对象的实例化,而是单独实例化 静态成员函数:在静态成员函数当中,无法调用非静态成员函数查看全部
-
关于友元的注意事项 友元是封装的补充,若设计得当,可以避开使用友元查看全部
-
Vector初始化查看全部
-
Vector常用函数查看全部
举报
0/150
提交
取消