#pragma once #include #include #include using namespace std; class CMethod; class UserProc; class Prototype { public: enum Accessibility{ None, Private, Protected, Public, }; private: // 名前空間 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 &prototype ) const; bool IsEqualSymbol( const string &name ) const; // 利用状況 bool IsUsing() const { return isUsing; } void Using() const { isUsing = true; } }; class MemberPrototype { Prototype::Accessibility accessibility; public: MemberPrototype( Prototype::Accessibility accessibility ) : accessibility( accessibility ) { } Prototype::Accessibility GetAccessibility() const { return accessibility; } void SetAccessibility( Prototype::Accessibility accessibility ){ this->accessibility = accessibility; } bool IsNoneAccess() const { return ( accessibility == Prototype::None ); } bool IsPrivate() const { return ( accessibility == Prototype::Private ); } bool IsProtected() const { return ( accessibility == Prototype::Protected ); } bool IsPublic() const { return ( accessibility == Prototype::Public ); } };