`
lbyzx123
  • 浏览: 466730 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

c++学习总结

阅读更多

1、

c++声明类的关键字是class、struct、union,多数用class.

例如:

class A{

       pulic:

        .......

       private:

       ........

      protected:

       .......

};

 

c++声明派生类的定义如下:

 class <派生类名>:<派生方式><基类名>

    {

      派生类成员声明;

    };

 

其中:

 ⑴ 继承方式关键字为private、public和protected,分别表示私有继承、公有继承和保护继承。缺省的继承方式是私有继承。继承方式规定了派生类成员和类外对象访问基类成员的权限.

 ⑵ 派生类成员是指除了从基类继承来的成员外,新增加的数据成员和成员函数。正是通过在派生类中新增加成员来添加新的属性和功能,来实现代码的复用和功能的扩充的。

class B:A{

       pulic:

        .......

       private:

       ........

      protected:

       .......

};

如果B中重写了A 中的c方法,使用A的指针调用c方法,执行的是A的c方法。使用B的指针调用c方法,执行的是B的c方法。

如果A中声明的c方法是虚函数,且B中重写了A中的c方法,则无论使用A的还是B的指针都是调用派生类B的c方法。调用虚函数,默认调用派生类的虚函数实现。

2、

虚函数声明如下:

virtual ReturnType FunctionName(Parameter);

虚函数必须实现,如果不实现,编译器将报错。

纯虚函数声明如下:

virtual ReturnType FunctionName(Parameter)=0;

纯虚函数是抽象的,没有方法体实现。纯虚函数一定没有定义,纯虚函数用来规范派生类的行为,即接口。

3、

包含纯虚函数的类是抽象类,抽象类不能定义实例,但可以声明指向实现该抽象类的具体类的指针或引用。

      c++接口的声明也是用class关键字,但声明中只有纯虚函数。

     有时候,我们得提供一些接口给别人使用。接口的作用,就是提供一个与其他系统交互的方法。其他系统无需了解你内部细节,并且也无法了解内部细节,只能通过你提供给外部的接口来与你进行通信。根据c++的特点,我们可以采用纯虚函数的方式来实现。这样做的好处是能够实现封装和多态。现举一实例,供大家参考。(不想做过多说明,大家一看就应该能够明白)

Class IPerson

{

public:

   IPerson(){};

   virtual ~IPerson()=0;//注意,最好要定义此虚析构函数,能够避免其实现不能正常调用析构函数的问题

   //提供给外面使用的接口一般采用纯虚函数

   virtual  void SetName(const string &strName)= 0;

   virtual  const string GetName()= 0;

   virtual  void Work()= 0;

}  有时候,我们得提供一些接口给别人使用。接口的作用,就是提供一个与其他系统交互的方法。其他系统无需了解你内部细节,并且也无法了解内部细节,只能通过你提供给外部的接口来与你进行通信。根据c++的特点,我们可以采用纯虚函数的方式来实现。这样做的好处是能够实现封装和多态。现举一实例,供大家参考。(不想做过多说明,大家一看就应该能够明白)

Class IPerson

{

public:

   IPerson(){};

   virtual ~IPerson()=0;//注意,最好要定义此虚析构函数,能够避免其实现不能正常调用析构函数的问题

   //提供给外面使用的接口一般采用纯虚函数

   virtual  void SetName(const string &strName)= 0;

   virtual  const string GetName()= 0;

   virtual  void Work()= 0;

}

继承接口的类,必须实现接口的方法。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics