1. 用参数初始化表进行初始化
Box::Box(int h,int w,int len):height(h),width(w),length(len){ }
2. 使用默认参数的构造函数
class里面声明Box(int h=10,int w=10,int len=10);
class外定义Box::Box(int h,int w,int len)
{
height=h;
width=w;
length=len;
}
3. 对象数组
Box a[3]={
Box(10,12,15),
Box(12,12,15),
Box(10,12,14)};
4. 指向对象成员函数的指针有三个方面要匹配 3.所属的类要一样
void (*p)(); //p是指向void型函数的指针变量
p=fun; //p指向fun函数
(*p)(); //调用fun函数
定义指向公用成员函数的指针变量
数据类型名(类名:: *指针变量名)(形参列表);
void (Time::*p) ();//定义指向成员函数的指针变量
p=&Time::get_time;//赋予函数地址给指针
(t1.*p)();//调用对象t1中的get_time
5.对象的复制
Box box2(box1);
6.静态数据成员是在类外定义的 是在对象外开辟一 空间的
int Box:: height=10; //不能使用参数初始化表对静态数据成员进行初始化。
静态数据成员可通过对象引用,也可通过类进行引用。
!!!!!!!! 公用静态数据成员于=与全局变量的不同!!!!!!!!!!!
静态数据成员的作用域只限于定义该类的作用域内(如果在一个函数内定义一个类,那么
其中静态数据成员的作用域就是此函数内。在此作用域内,可以通过类名和域运算符引用
静态数据成员,而不论类对象是否存在。
7.静态成员函数(无this指针)
c++中,静态成员函数主要用来访问静态数据成员,而不访问非静态成员。 P105
8.类模板
template<class 类型参数名> P113
定义用法 Compare <int> cmp1(4,7);
在模板外定义:
template<class numtype>
numtype Compare <numtype>::max()
{
return(x>y)?x:y;
}