类与对象
一、面向对象
1.面向对象程序设计的四大特点
抽象,封装,继承,多态
二、类与对象
2.类的定义
class 类名{
public:
外部接口
protected:
保护部分
private:
私有部分
};
3.对象的定义
类名 对象名;
4.类的成员函数
(1).成员函数的实现
返回值类型 类名::对象名(形参表){
函数体
}
(2).内联函数
将函数体直接放在类体内隐式声明,函数前加上inline
三、构造函数和析构函数
1.构造函数
构造函数的作用就是在对象被创建时利用特定的值构造对象,将对象初始化为一个特定的状态
构造函数的特点:
1.函数名与类名相同
2.没有返回值
3.通常为公有函数
4.在你不主动声明的时候,编译器会在编译的时候自动生成一个无参的构造函数
2.复制构造函数
类名(类名 &对象名);
其形参是本类的对象的引用,其作用是使一个已经存在的对象去初始化同类的一个新对象
复制构造函数在以下三种情况下会被调用
1.当用一个类去初始化该类的另一个对象时
2.如果函数的形参是类的对象,调用函数时,复制构造函数呗调用
3.如果返回值是类的对象,函数执行返回调用者操作时
//1
void mian(){
Point a(1,2);
Point b(a);//用对象a去初始化对象b,调用了复制构造函数
}
//2
void f(Point p){
cout<<p.getX()<<endl;
}
void main(){
Point a(1,2);
f(a);//调用了构造函数
}
//3
void f(){
Point p(1,2);
return p;
}
void main(){
Point a;
a=f();//调用了复制构造函数
}
3.析构函数
有头就有尾,析构函数就是完成对象被删除前的一些清理工作,它在对象的生存期结束的时刻被自动调用
析构函数的格式
~函数名(){ }
1.函数名=类名
2.析构函数不接受任何参数,但可以是虚函数
4.类的组合
类的组合描述的就是一个类内嵌其他类的对象作为成员的情况,他们的关系是包含于被包含的关系
组合类构造函数定义格式:
类名::类名(形参表):内嵌对象1(形参表)::内嵌对象2(形参表)::...{
类的初始化
}