经验交流

3773考试网计算机等级考试经验交流正文

掌握C++

来源:fjzsksw.com 2009-12-17 15:16:50

基类成员\继承方式 共有继承 私有继承 保护继承
私有成员 private Private 不可访问 不可访问
保护成员 protected protected private protected
公有成员 public public private protected

  在派生类构建构造函数和析构函数时候需要注意:

  基类的构造函数和析构函数不能被派生类继承;

  如果基类没有定义构造函数,派生类也不能定义构造函数,都要采用默认构造函数(由于编译器对提供构造函数有条件,那么在这种情况下,啥都别干就行了)。

  如果基类定义了带参数的构造函数,那么派生类要定义性的构造函数,提供一个将参数传递给基类构造函数的途径。

  如果派生类的基类也是派生类,每个派生类只负责直接基类的构。

  派生类是否要定义析构函数和所属的基类无关。

  基类和派生类的构造函数和析构函数的执行顺序如下:

  基类的构造函数

  派生类的构造函数

  派生类的析构函数

  基类的析构函数

  虚函数与多态性、纯虚函数

  用virtual关键字申明(定义)的函数叫做虚函数,在基类的函数前面加上virtual关键字,在派生类中重写该函数,运行时会根据对象的实际类型来调用相应的函数,这就是c++的多态性,在基类中定义一个统一的接口函数,在不同的派生类中重写该函数,实现不同的功能。

  纯虚函数是指被标明为不具体实现的虚成员函数,凡是有纯虚函数的类叫做抽象类。抽象类不能声明对象,只能作为基类为派生类服务,派生类必须完全实现基类的纯虚函数,否则派生类也会变成抽象类。

  Virtual void functionName()=0;//纯虚函数

  函数的覆盖与隐藏

  构成覆盖的条件:

  基类函数必须是虚函数;

  发生覆盖的2个函数必须分别处于基类和派生类中;

  函数名称与参数列表必须完全相同(是不是返回值类型也必须相同?)

  构成隐藏的条件:

  基类和派生类的函数完全相同,基类没有使用virtual关键字;

  基类和派生类的函数名相同,参数不同,此时不管基类函数是否使用virtual关键字,基类的函数都被隐藏。

  函数重载发生在同一个类中,覆盖和隐藏发生在基类和派生类关系中。

  引用

  偶然的机会看到了《Effective C++》中关于引用的建议,对于不需要修改原值的引用,使用引用时尽量加上const关键字,避免对原值造成修改(记不大清楚了,大概是这样)。

  引用的定义:int &a=b;

  看到一个小程序,不引入第三个变量,交换2个变量的值。

  void change(int& a,int& b)

  {

  a=a+b;

  b-a-b;

  a=a-b;

  }//有一面试的时候被问到了,当时没答出来

  VC++程序编译链接的原理和过程

  有点小复杂,一时间理解不了,有空慢慢研究。

上一页  [1] [2] [3] [4] [5] 

触屏版 电脑版
3773考试网 琼ICP备12003406号-1