Ignore:
Timestamp:
Oct 21, 2007, 3:37:31 PM (17 years ago)
Author:
dai_9181
Message:

インターフェイス実装周りの仕様整備

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler_Common/include/Procedure.h

    r351 r353  
    1313
    1414class CClass;
     15class Interface;
    1516class CMethod;
    1617
     
    122123    // 親クラスと対応するメソッド
    123124    const CClass *pParentClass;
     125    const Interface *pInterface;
    124126    CMethod *pMethod;
    125127
     
    160162        ar & BOOST_SERIALIZATION_NVP( importedNamespaces );
    161163        ar & boost::serialization::make_nvp("pParentClass", const_cast<CClass *&>(pParentClass) );
     164        ar & boost::serialization::make_nvp("pInterface", const_cast<Interface *&>(pInterface) );
    162165        ar & BOOST_SERIALIZATION_NVP( pMethod );
    163166        ar & BOOST_SERIALIZATION_NVP( isMacro );
     
    182185        , importedNamespaces( importedNamespaces )
    183186        , pParentClass( NULL )
     187        , pInterface( NULL )
    184188        , pMethod( NULL )
    185189        , isMacro( isMacro )
     
    211215    {
    212216        if( this->GetParentClassPtr() == pUserProc->GetParentClassPtr() // 親クラスが等しい
     217            && this->pInterface == pUserProc->pInterface                // インターフェイスが等しい
    213218            && pUserProc->IsEqualSymbol( *this )                        // 名前空間及び名前が等しい
    214219            && this->Params().Equals( pUserProc->Params() )             // パラメータが等しい
     
    358363        return ( pParentClass == NULL );
    359364    }
     365    void SetInterface( const Interface *pInterface )
     366    {
     367        this->pInterface = pInterface;
     368    }
    360369    void SetMethod( CMethod *pMethod ){
    361370        this->pMethod = pMethod;
     
    417426    bool Insert( UserProc *pUserProc, int nowLine );
    418427
    419     UserProc *Add( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, char *buffer,int nowLine,bool isVirtual,CClass *pobj_c, bool isStatic);
     428    UserProc *AddUserProc( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, char *buffer,int nowLine,bool isVirtual,CClass *pobj_c, bool isStatic, char *interfaceName = NULL );
    420429
    421430    void EnumGlobalProcs( const char *simpleName, const char *localName, std::vector<const UserProc *> &subs );
Note: See TracChangeset for help on using the changeset viewer.