//一个类
class Class_one
{
int num;
char name[20];
void display()
{....}
};
Class_one stu1,studh2;
//指定访问属性(默认为私有)
class Ex_class
{
private:
int sum;
public:
char a[];
};
//类外定义函数
void Ex_class::display()
{....}
//定义内置函数,类内默认为内置函数
inline void display();
//访问对象内的成员
stu1.display();
stu1.num;
Class_one *p;
p=&stu1;
p->num;
//默认参数,声明时使用,定义时不必
void set(Class_one&,int a=1;int b=2);
//类的初始化
class Ex_class
{
a;
b;
};
Ex_class one{1,2};//公有时才能用
class Ex_class
{
Ex_class()//构造函数
{
a=b=0;
}
};
class Ex_class
{
Ex_class();
};
Ex_class::Ex_class()//类外定义,无类型,无法被用户调用
{
a=b=0;
}
class Ex_class
{
Ex_class(int,int);
};
Ex_class::Ex_class(int m,int n)//带参数的构造函数
{
a=m,b=n;
}
Ex_class one(1,2);
Ex_class(int n,int m,nam[]):a(n),b(m)//初始化表
{
strcpy(name,nam);
}
Ex_class one(1,2,"oo");
//析构函数
class Ex_class
{
~Ex_class()
{....}
};
//对象数组
Ex_class sum[3]={1,2,3}//每个对象只有一个参数
Ex_class sum[3]={
Ex_class(1,2);
Ex_class(1,2);
Ex_class(1,2);
};
//定义一个指向公用成员函数的指针
void Ex_class::*(p2());
p2=&Ex_class::display();
//常对象、常数据、常成员函数、指向对象的常指针、指向常变量的常指针、指向常对象的指针
const Ex_class stu1;
const int a;
void display()const;
Ex_class*const p;
const int *p;
const Ex_class *p;
//使得const成员函数可以修改
mutable int count;
//对象的引用(虚实结合,能修改实参)、常引用
void display(Ex_class &t); void display(const Ex_class &t);
//对象的动态建立和释放
new Box;
Box *pt=new Box(1,2);
delete pt;
//对象的赋值与复制
Ex_class stu1,stu2;
stu1=stu2;
Box box2(box1);//调用复制构造函数
Box box2=box1;
//静态数据成员:可以初始化,但只能在类外;程序结束时释放空间
static int a;
//静态成员函数
static int display();
Ex_class::display();//类外调用必须带::没有this指针
//友元函数:能直接调用类里的私有函数(可以是其他类的成员函数)
class Ex_class
{
friend void display(Ex_class&);
};
void display(Ex_class oneclass)
{
}
//友元类,在类A里定义使得B的成员函数都是A的成员函数
friend B;
//类模板
template //定义一个模板虚拟类型名为numtype
class Compare
{
compare(numtype a,numtype b)
{....}
numtype m()
{....};//如果在类外定义:numtype Compare::m();
};
compare cmpl(3,4);
template //可定义多个
class someclass
{....}
someclass obj;
//运算符重载
Ex_class operator+(Ex_class &c1,Ex_class &c2)//类内定义
{...}
Ex_class Ex_class::operator+(Ex_class &c1,Ex_class &c2)//类外定义
{...}
friend Ex_class operator+(Ex_class &c1,Ex_class &c2);//作为友元函数声明
Ex_class operator+(Ex_class &c1,Ex_class &c2)//作为友元函数定义
{...}
//<<,>>运算符的重载
istream&operator>>(istream&,oneclass&)
{
input>>p.x>>p.y;
return input;
}
ostream&operator<<(ostream&,oneclass&)
{
output<<"("<