首页 > 代码库 > 浅谈类与对象

浅谈类与对象

1.抽象:是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。

       数据抽象:某类对象的属性或状态

       行为抽象:某类对象的共同行为或功能特征(方法)

2.封装:将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体。也就是将数据和操作数据的函数代码进行有机的结合,形成类。

3.继承

4.多态

 

1.带默认形参值的成员函数

类成员函数的默认值,一定要写在类定义中,而不能写在类定义之外的函数中。

Class clock{

Public:

       Void setTime(int newH=0, int newM=0, int news=0);     

       …

}

如果调用这个函数时没有给出实参,就会按照默认的形参值将时钟设置到午夜0点。

 

2.内联成员函数(inline function

内联函数的声明有两种方式:隐式声明和显示声明。

(1)隐式声明:将函数直接放在类体里。

class Clock

public

         void showTime(){

      cout<<hour<<”:”<<minute<<”:”<<second<<endl;

}

(2)显示声明:采用关键字inline。在函数体实现时,在函数返回值类型前加上inline,类定义中不加showTime()的函数体。

Inline void showTime(){

   cout<<hour<<”:”<<minute<<”:”<<second<<endl;

}

 

3.构造函数

(1)构造函数的函数名和类名相同

(2)没有返回值

(3)声明为public

构造函数在对象被创建时自动调用,调用时无须提供参数的构造函数称为默认构造函数。

构造函数的重载:有参数的和无参数的。

复制构造函数

       特点:其形参是本类的对象的引用。其作用是使用一个已经存在的对象,去初始化同类的一个新对象。

class 类名{

public:

       类名(形参表);

类名(类名 &对象名);

…          

};

类名::类名(类名 &对象名){

       //函数体

}

 

复制构造函数在3中情况下被调用:

(1)当用类的一个对象去初始化该类的另一个对象时。

int main(){

  Point a(1,2);

Pointb(a); //用对象a去初始化b,调用复制构造函数

Pointc=a; //用对象a去初始化c,调用复制构造函数

return0;

}

(2)如果函数的形参是类的对象,调用函数时,进行形参和实参的结合。

void f(Point p){

         cout<<p.getX()<<endl;

}

int main(){

  Point a(1.2)

f(a);

return0;

}

注意:只有把对象用值传递时,才会调用复制构造函数;如果传递引用,则不会调用。

(3)如何函数的返回值是类的对象,函数执行完成返回调用者时。

Point g(){

  Point a(1,2);

   return a;

}

int main(){

  Point b;

   b=g();

  return 0;

}

 

4.析构函数

1)类名前加~

2)没有返回值

3)不接收任何参数,可以是虚函数。

作用:用来完成对象被删除前的一些清理工作,在对象生命周期即将结束的时刻被调用。

 

浅谈类与对象