#pragma once #include #include #include using namespace std; class Prototype { // 名前空間 NamespaceScopes namespaceScopes; //名前 string name; mutable bool isUsing; public: Prototype( const NamespaceScopes &namespaceScopes, const string &name ) : namespaceScopes( namespaceScopes ) , name( name ) , isUsing( false ) { } ~Prototype() { } // 名前空間 const NamespaceScopes &GetNamespaceScopes() const { return namespaceScopes; } const string &GetName() const { return name; } //自身と等しいかどうかを確認 bool IsEquals( const Prototype *prototype ) const { if( this == prototype ){ return true; } return false; } // シンボル比較 bool IsEqualSymbol( const NamespaceScopes &namespaceScopes, const string &name ) const; bool IsEqualSymbol( const Prototype &objClass ) const; bool IsEqualSymbol( const string &name ) const; // 利用状況 bool IsUsing() const { return isUsing; } void Using() const { isUsing = true; } };