00001
00024 #ifndef BASE_H_
00025 # define BASE_H_
00026
00027 #include <iostream>
00028 #include <map>
00029 #include "Symbol.h"
00030
00032 namespace IRIS {
00033
00034 using namespace std;
00035
00038 namespace Fuzzy {
00039
00041 class Base
00042 {
00043 public :
00044
00045 typedef map< string , Symbol * > bagOfSymbols;
00046
00047
00048
00050 Base( );
00053 Base( const Base& other );
00054
00055
00056
00058 ~Base( );
00059
00060
00061
00064 Base& operator=( const Base& other );
00067 void addSymbol( const Symbol& symbol ) ;
00068
00069
00070
00073 Symbol* getSymbol( const string& name );
00075 inline int getSize() const { return _bag.size(); }
00076
00077
00078
00080 friend ostream& operator<<( ostream& outs , const Base& source );
00081
00082 private :
00083
00084 bagOfSymbols _bag;
00085
00086
00087
00088 void _copy( const Base& other );
00089 void _destroy( );
00090
00091 };
00092
00093 }
00094
00095 }
00096
00097 #endif