00001
00027 #ifndef SYMBOL_H_
00028 # define SYMBOL_H_
00029
00030 #include <iostream>
00031 #include <string>
00032
00034 namespace IRIS {
00035
00036 using namespace std;
00037
00040 namespace Fuzzy {
00041
00043 class Symbol
00044 {
00045
00046 public :
00047
00048
00049
00052 Symbol( const string& name = "?" );
00055 Symbol( const Symbol& other );
00056
00057
00058
00059 virtual ~Symbol(void) ;
00060
00061
00062
00065 void setName( const string& name );
00067 Symbol& operator=( const Symbol& other );
00068
00069
00070
00072 string getName() const ;
00073
00074
00075
00076
00080
00084
00085
00086
00087
00089 friend bool operator==( const Symbol& a , const Symbol& b );
00091 friend ostream& operator<<( ostream& outs , const Symbol& src );
00092
00093 protected :
00094
00095 string name ;
00096
00097
00098
00099 void _copy( const Symbol& other );
00100 void _destroy( );
00101
00102 };
00103
00104 }
00105
00106 }
00107
00108 #endif