仿基因程式設計的C 原始碼

2021-04-16 12:24:27 字數 3426 閱讀 9173

#ifndef __gwl_h__

#define __gwl_h__

//gwl名字空間的開始

#define gwl_begin namespace gwl

//使用名字空間gwl

#define _gwl using namespace gwl;

#include

#include

#include

#include

#include

gwl_begin

using namespace std;

typedef basic_string

,allocator

> gstring;

#ifdef _unicode

#define gout wcout

#else

#define gout cout

#endif

//構建基本錯誤描述

enum ;

typedef vector

gerrortype;

class gwlerrorinfo

public:

static const gerrortype& gwlerrors()

};#define errs gwlerrorinfo::gwlerrors()

////為子型別識別定義乙個巨集.它把物件本身當做乙個異常丟擲

#define who virtual void who()

//類element,是程式設計元素的抽象,被抽象得只有乙個特性:被認出身分

class element

virtual void who() =0;

element(){}

protected:

explicit element(const element&){}

element& operator = (const element&)

};//

//類company,用來把一些有關聯的處理機組織到一起

//它相當於現實中的公司或機構

class company:public element

who};

////所有資料的基型別,但它沒有任何資料內容.

//它是對資料的高度抽象, 抽象到只有它是能被處理這一點特性了.

class data:public element;

////版本資訊

class versioninfo:public data

bool operator == (const versioninfo& right)

unsigned int major;

unsigned int minor;

gstring  companyname;

who};

////錯誤資訊的可攜式別.規定id為零表示沒有錯誤.

class errorinfo:public data

errorinfo(unsigned int _id = ok)

errorinfo& operator =( errorinfo& right)

unsigned int id;

gstring  info;

whoprivate:

};//

//對資料進行分類的模板.

template

class localdata:public data

;//

//對錯誤型別分類的模板.

template

class localerror:public errorinfo

localerror(unsigned int _id):errorinfo(_id){}

who

};

////資料群落

//通過資料群落中處理, 使用者可以方便的實現自己想要的相關資料處理.

template

class datacommunity:public data

virtual void get(processor& match){}

};//

//處理機的基型別, processor

//它是系統中"資料處理塊"的高度抽象. 抽象到只能處理資料了.

class processor:public element

virtual void set(data& data)  //資料流入

virtual void get(data& data)  //資料流出

virtual void bind(data* data) 

virtual void debind(data* data)

virtual const errorinfo& lasterror();

protected:

//防止因賦值操作和拷貝構造所帶來的混亂

processor& operator =(processor&)

explicit processor(processor& o){}//這是也防止混亂的.

////巨集cenozoic,用來新生乙個處理機

#define cenozoic(new_processor_name)/

class new_processor_name:public processor/

;//定義乙個從windows動態鏈結庫進行處理機真正實現的建立方針

/template

class windll

~windll()

processor* create(tchar* path)

private:

hmodule libhandle;//處理機工廠所在的庫的控制代碼

////處理機匹配器.它有以下功能

//功能1:對處理機名柄進行智慧型包裝

//功能2:對處理所能處理的資料進行匹配

template

class envionment = windll>

class match

~match()

}operator bool()

//單項資料輸入

matchtype& operator >> (datatype& data)

//單項資料輸出

matchtype& operator << (datatype& data)

//資料群落輸出

matchtype& operator<< (datacomm& dataset)

// 資料群落輸入

matchtype& operator >>(datacomm& dataset)

const errorinfo& lasterror()

private:

processor *handle;

envionment

envionment;

};gwl_end

#endif //__gwl_h__ 

仿基因程式設計的C 原始碼

ifndef gwl h define gwl h gwl名字空間的開始 define gwl begin namespace gwl 使用名字空間gwl define gwl using namespace gwl include include include include include g...

仿基因程式設計的C 原始碼

ifndef gwl h define gwl h gwl名字空間的開始 define gwl begin namespace gwl 使用名字空間gwl define gwl using namespace gwl include include include include include g...

仿基因程式設計的C 原始碼

ifndef gwl h define gwl h gwl名字空間的開始 define gwl begin namespace gwl 使用名字空間gwl define gwl using namespace gwl include include include include include g...