C++复习

一 面向对象(oop)

1.封装

2.继承

基类---->派生类

3.多态:派生类中可能出现与基类同名的方法。

针对基类与派生类同名的方法,派生类要有自己的行为,必须要覆盖基类的方法。

 

二 虚函数

virtual  funname(。。)                // 基类允许实现该方法

纯虚函数:virtual funname()=0     //基类不存在对该方法的实现。

一个类中包含了一个纯虚函数,那么该类叫抽象类。 抽象类不能实例该类的对象。

如果派生类也没有去实现基类中的纯虚函数,那么该派生类也是一个抽象类。

 

三 多态(override)要和函数的重载(overload)区分

1.多态是在存在继承关系的类中,看是否有相同的方法。

2.重载是在一个类中去比较。

a.参数的数据类型不同

b.参数的个数不同

c.方法名一定要相同

 

四. 继承的三种方式
private:
  private   ---------->不能继承
  public    ----------> private
  protected ----------> private

public:
  private   ---------->不能继承
  public    ---------->public
  protected ---------->protected

protected:
  private   ---------->不能继承
  public    ---------->protected
  protected ---------->protected


private:只能在本类中访问私有成员变量或私有的成员函数

public:  任何一个地方都可以访问

protected:本类中可以访问,具有继承关系的类都可以访问

 

五.如果非要在一个类中访问某个类的私有变量或函数

1.采用友元函数

class A

{

friend int funname();  //该函数可以访问A类的私有变量及私有函数

};

2.采用友元类

class A

{

friend class B;                   //B类可以访问A类的私有变量及私有函数

};

 

六.符号重载特点:

1.只是给C++原有符号增加新的功能,并不是创建一个新的符号

2.符号优先级不能改变

3.一元符号仍然是一元符号。

符号重载的方式:

1.成员函数重载

2.友元重载(<< ,>>这两个符号只能通过友元重载)

 

七.引用和指针的区别:

1.引用变量不需要开辟空间,而指针变量肯定占用了空间

2.引用变量一定要初始化,指针变量不要求初始化

3.引用变量初始化后就不能再改变,而指针变量可以重新指向新的地址

引用一般用在函数的参数与返回值:int &  fun(int &a)

 

八.const变量

1.const变量存在静态全局区

2.const变量一定要初始化。

3. const int  *p;      //   *p为常数,p可以指向其他地址

     int   *  const  p;   // 指针p为常数,指向的地址一旦确定就不能修改,p指向的地址里保存的值可以修改。

4.const在类中使用的特点:

a.类里面使用const

int fun() const  // 只在定义时加该关键字,实现不需要该关键字

b.对象使用const(常对象)

1.不能修改该对象中的成员变量

2.常对象只能调用常函数(因为常函数也不修改成员变量);

 

九.static在类中使用

1.静态成员变量只能用在静态函数中

2.静态对象只能调用静态函数

3.静态函数中不能调用非静态函数

static int funname() // 只在定义时使用该关键字,实现时不需要

静态变量和静态方法是属于类自己的,不是属于对象的,在静态方法中不能使用this指针。

posted @ 2011-09-19 15:07  auleaf  阅读(217)  评论(0编辑  收藏  举报