当前位置: 首页 > 编程笔记 >

C++ 通过指针实现多态实例详解

史英睿
2023-03-14
本文向大家介绍C++ 通过指针实现多态实例详解,包括了C++ 通过指针实现多态实例详解的使用技巧和注意事项,需要的朋友参考一下

 C++ 通过指针实现多态实例详解

1.父类(DBConnector)

1)DBConnector.h

#include <string> 
using namespace std; 
class DBConnector 
{ 
private: 
 string name; 
public: 
 DBConnector(); 
 DBConnector(string _name); 
 ~DBConnector(); 
 
 void show(); 
}; 

2)DBConnector.cpp

#include "DBConnector.h" 
#include <iostream> 
using namespace std; 
 
DBConnector::DBConnector() 
{ 
} 
 
DBConnector::DBConnector(string _name) 
{ 
 name = _name; 
} 
 
DBConnector::~DBConnector() 
{ 
} 
 
void DBConnector::show() 
{ 
 cout << name << endl; 
} 

2.子类1(MySqlConnector)

1)MSSqlConnector.h

#pragma once 
#include "DBConnector.h" 
class MSSqlConnector :public DBConnector 
{ 
public: 
 MSSqlConnector(); 
 MSSqlConnector(string _name); 
 ~MSSqlConnector(); 
}; 

2)MSSqlConnector.cpp

#include "MSSqlConnector.h" 
 
MSSqlConnector::MSSqlConnector() 
{ 
} 
 
MSSqlConnector::MSSqlConnector(string _name) :DBConnector(_name) 
{ 
  
} 
 
MSSqlConnector::~MSSqlConnector() 
{ 
} 

3.子类2(MSSqlConnector)

1)MSSqlConnector.h

#pragma once 
#include "DBConnector.h" 
class MSSqlConnector :public DBConnector 
{ 
public: 
 MSSqlConnector(); 
 MSSqlConnector(string _name); 
 ~MSSqlConnector(); 
}; 

2)MSSqlConnector.pp

#include "MSSqlConnector.h" 
 
MSSqlConnector::MSSqlConnector() 
{ 
} 
 
MSSqlConnector::MSSqlConnector(string _name) :DBConnector(_name) 
{ 
  
} 
 
MSSqlConnector::~MSSqlConnector() 
{ 
} 

4.Test

#include "MySqlConnector.h" 
#include "MSSqlConnector.h" 
#include <iostream> 
#include <string> 
using namespace std; 
 
void main() 
{ 
 MySqlConnector mysql("mysql"); 
 MSSqlConnector mssql("mssql"); 
 
 DBConnector* p; 
 p = &mysql; 
 p->show(); 
 
 p = &mssql; 
 p->show(); 
  
 //mysql.show(); 
 //mssql.show(); 
} 

5.运行结果

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 本文向大家介绍C++智能指针实例详解,包括了C++智能指针实例详解的使用技巧和注意事项,需要的朋友参考一下 本文通过实例详细阐述了C++关于智能指针的概念及用法,有助于读者加深对智能指针的理解。详情如下: 一、简介 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没

  • 本文向大家介绍C/C++静态类和this指针详解及实例代码,包括了C/C++静态类和this指针详解及实例代码的使用技巧和注意事项,需要的朋友参考一下  C/C++静态类和this指针详解 1、静态类 C++的静态成员不仅可以通过对象来访问,还可以直接通过类名来访问。 静态成员变量 对应静态成员有以下几点需要注意: (1)静态数据成员可以是当前类的类型,而其他数据成员只能是当前类的指针或应用类型。

  • 本文向大家介绍C++中this指针用法详解及实例,包括了C++中this指针用法详解及实例的使用技巧和注意事项,需要的朋友参考一下 C++中this指针用法详解及实例 概要: 本文简单介绍this指针的基本概念,并通过一个实际例子介绍this指针用于防止变量命名冲突和用于类中层叠式调用的两个用法。 this指针概览 C++中,每个类 对应了一个对象,每个对象指向自己所在内存地址的方式即为使用thi

  • 本文向大家介绍C++交换指针实例,包括了C++交换指针实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C++交换指针的方法。分享给大家供大家参考。具体分析如下: 通常情况下,我们只是对普通数据进行交换,交换指针的问题很少涉及,这里总结下,也方便我们以后查阅。 首先看下整型两个数据的交换(这个比较简单,就不多介绍了),核心代码如下: 指针是内存地址,应该也算是整型变量,交换两个指针和交换

  • 本文向大家介绍C++中指针指向二维数组实例详解,包括了C++中指针指向二维数组实例详解的使用技巧和注意事项,需要的朋友参考一下 C++中指针指向二维数组实例详解 一维指针通常用指针表示,其指向的地址是数组第一元素所在的内存地址,如下 那么ary[4]相当于int(*aryp),以下理解如此,但参数传递需要知道实参所在 的一维个数,所以传递的时候应该传递多一个参数,子数组的引用可以理解 为(*p),

  • 本文向大家介绍C语言中二级指针的实例详解,包括了C语言中二级指针的实例详解的使用技巧和注意事项,需要的朋友参考一下 C语言中二级指针的实例详解 用图说明 示例代码: 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!