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

 更新时间:2017年03月25日 17:01:51   投稿:lqh  
这篇文章主要介绍了 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++多线程基础理论,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • VC外部符号错误_main,_WinMain@16,__beginthreadex解决方法

    VC外部符号错误_main,_WinMain@16,__beginthreadex解决方法

    这篇文章主要介绍了VC外部符号错误_main,_WinMain@16,__beginthreadex解决方法,实例分析了比较典型的错误及对应的解决方法,需要的朋友可以参考下
    2015-05-05
  • C++的最短路径的弗洛伊德算法案例讲解

    C++的最短路径的弗洛伊德算法案例讲解

    这篇文章主要介绍了C++的最短路径的弗洛伊德算法案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • C语言rand和srand函数使用方法介绍

    C语言rand和srand函数使用方法介绍

    rand()函数用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的。srand()用来设置rand()产生随机数时的随机数种子。参数seed是整数,通常可以利用time(0)或geypid(0)的返回值作为seed
    2023-02-02
  • 掌握C++编程中反斜杠续行符的使用方法

    掌握C++编程中反斜杠续行符的使用方法

    这篇文章主要介绍了掌握C++编程中反斜杠续行符的使用方法,包括取反斜杠的本意的方法等基本知识点,需要的朋友可以参考下
    2016-01-01
  • 基于C/C++ 常见误区详解

    基于C/C++ 常见误区详解

    本篇文章介绍了在c和c++中一些常见误区的详细概述。需要的朋友参考下
    2013-05-05
  • C++ ffmpeg硬件解码的实现方法

    C++ ffmpeg硬件解码的实现方法

    这篇文章主要介绍了C++ ffmpeg硬件解码的实现,对FFmpeg多媒体解决方案中的视频编解码流程进行研究。为嵌入式多媒体开发提供参考,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • C语言报错:Undefined Reference的产生原因和解决方案

    C语言报错:Undefined Reference的产生原因和解决方案

    Undefined Reference(未定义引用)是C语言编译过程中常见的错误之一,通常在链接阶段出现,本文将详细介绍Undefined Reference的产生原因,提供多种解决方案,并通过实例代码演示如何有效避免和解决此类错误,需要的朋友可以参考下
    2024-06-06
  • C语言数组入门之数组的声明与二维数组的模拟

    C语言数组入门之数组的声明与二维数组的模拟

    这篇文章主要介绍了C语言数组入门之数组的声明与二维数组的模拟,数组学习的同时也要相应理解C语言指针的作用,需要的朋友可以参考下
    2015-12-12
  • C++11智能指针unique_ptr用法使用场景分析

    C++11智能指针unique_ptr用法使用场景分析

    unique_ptr 是 C++ 11 提供的用于防止内存泄漏的智能指针中的一种实现,即使在异常发生时也可帮助避免资源泄露。这篇文章主要介绍了C++11智能指针unique_ptr用法介绍,需要的朋友可以参考下
    2021-08-08

最新评论