c++构造函数等等

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;
}
 
 
 
原文地址:https://www.cnblogs.com/humanchan/p/3020872.html