C++.polymorphism.Simulation of JAVA's DB Interface

来源:互联网 发布:nginx 设置默认页面 编辑:程序博客网 时间:2024/06/05 15:39

==========main.h==========

#pragma once#include<iostream>#include <typeinfo>using namespace std;class DataBase{public:virtual void Open()=0;virtual void Close()=0;virtual void Create()=0;virtual void Read()=0;virtual void Update()=0;virtual void Delete()=0;};void main();void f(DataBase &);


=========Access.h========

#pragma once#include "main.h"class Access:public DataBase{public:void Open();void Close();void Create();void Read();void Update();void Delete();};

==========Disk.h=========

#pragma once#include "main.h"class Disk:public DataBase{public:void Open();void Close();void Create();void Read();void Update();void Delete();};

=========SQL.h==========

#pragma once#include "main.h"class SQL:public DataBase{public:void Open();void Close();void Create();void Read();void Update();void Delete();};

========MySQL.h=========

#pragma once#include "main.h"class MySQL:public DataBase{public:void Open();void Close();void Create();void Read();void Update();void Delete();};

============= Access.cpp===========

#include"Access.h"void Access::Open(){cout<<"Access has been called successfully!"<<endl;}void Access::Close(){cout<<"Access has been called successfully!"<<endl;}void Access::Create(){cout<<"Access has been called successfully!"<<endl;}void Access::Read(){cout<<"Access has been called successfully!"<<endl;}void Access::Update(){cout<<"Access has been called successfully!"<<endl;}void Access::Delete(){cout<<"Access has been called successfully!"<<endl;}


=============Disk.cpp============

#include"Disk.h"void Disk::Open(){cout<<"Disk has been called successfully!"<<endl;}void Disk::Close(){cout<<"Disk has been called successfully!"<<endl;}void Disk::Create(){cout<<"Disk has been called successfully!"<<endl;}void Disk::Read(){cout<<"Disk has been called successfully!"<<endl;}void Disk::Update(){cout<<"Disk has been called successfully!"<<endl;}void Disk::Delete(){cout<<"Disk has been called successfully!"<<endl;}

========MySQL.cpp=========

#include"MySQL.h"void MySQL::Open(){cout<<"MySQL has been called successfully!"<<endl;}void MySQL::Close(){cout<<"MySQL has been called successfully!"<<endl;}void MySQL::Create(){cout<<"MySQL has been called successfully!"<<endl;}void MySQL::Read(){cout<<"MySQL has been called successfully!"<<endl;}void MySQL::Update(){cout<<"MySQL has been called successfully!"<<endl;}void MySQL::Delete(){cout<<"MySQL has been called successfully!"<<endl;}


========SQL.cpp=========

#include"SQL.h"void SQL::Open(){cout<<"SQL has been called successfully!"<<endl;}void SQL::Close(){cout<<"SQL has been called successfully!"<<endl;}void SQL::Create(){cout<<"SQL has been called successfully!"<<endl;}void SQL::Read(){cout<<"SQL has been called successfully!"<<endl;}void SQL::Update(){cout<<"SQL has been called successfully!"<<endl;}void SQL::Delete(){cout<<"SQL has been called successfully!"<<endl;}


========main.cpp=========

#include "Access.h"#include "Disk.h"#include "SQL.h"#include "MySQL.h"void main(){char n;Access A; Disk D; MySQL M; SQL S;cout<<"Please choose a kind of DB (Access(A) Disk(D) SQL(S) MySQL(M)):";cin>>n;switch (n){case 'A':case 'a':f(A);break;case 'D':case 'd':f(D);break;case 'S':case 's':f(S);break;case 'M':case 'm':f(M);break;default:cout<<"Error input!"<<endl;}}void f(DataBase &F){cout<<"The type of current object is:"<<typeid(F).name()<<endl;F.Open();F.Close();F.Create();F.Read();F.Update();F.Delete();}



原创粉丝点击