Ignore:
Timestamp:
Oct 17, 2007, 3:31:20 AM (17 years ago)
Author:
dai_9181
Message:

インターフェイスメソッドはオーバーライド対象外とした

Location:
trunk/abdev/BasicCompiler_Common/include
Files:
2 edited

Legend:

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

    r347 r351  
    5151    }
    5252
     53    virtual bool Override( const UserProc *pUserProc, Prototype::Accessibility accessibility, bool isOverrideModifier ) = 0;
     54
    5355    virtual bool IsAbstract() const = 0;
    54     virtual void Override() = 0;
     56    virtual void SetAbstractMark( bool isAbstractMark ) = 0;
    5557    virtual bool IsVirtual() const = 0;
    5658    virtual bool IsConst() const = 0;
     
    103105    }
    104106
     107    virtual bool Override( const UserProc *pUserProc, Prototype::Accessibility accessibility, bool isOverrideModifier );
     108
    105109    virtual bool IsAbstract() const
    106110    {
    107111        return isAbstract;
    108112    }
    109     virtual void Override()
    110     {
    111         isAbstract = false;
     113    virtual void SetAbstractMark( bool isAbstract )
     114    {
     115        this->isAbstract = isAbstract;
    112116    }
    113117    virtual bool IsVirtual() const
     
    150154
    151155public:
     156
     157    // コンストラクタ
    152158    StaticMethod( UserProc *pUserProc, Prototype::Accessibility accessibility )
    153159        : CMethod( pUserProc, accessibility )
    154160    {
    155161    }
     162
     163    // コピーコンストラクタ
     164    StaticMethod( const StaticMethod &staticMethod );
     165
     166    // デストラクタ
    156167    StaticMethod()
    157168    {
    158169    }
    159170
     171    virtual bool Override( const UserProc *pUserProc, Prototype::Accessibility accessibility, bool isOverrideModifier ){SetError();return false;}
     172
    160173    virtual bool IsAbstract() const{SetError();return false;}
    161     virtual void Override(){SetError();}
     174    virtual void SetAbstractMark( bool isAbstract ){SetError();}
    162175    virtual bool IsVirtual() const{
    163176        return false;
     
    190203
    191204public:
     205    // コンストラクタ
    192206    Methods();
     207
     208    // コピーコンストラクタ
     209    Methods( const Methods &methods );
     210
     211    // デストラクタ
    193212    ~Methods();
    194213
     
    197216    void AddStatic(UserProc *pUserProc,Prototype::Accessibility accessibility);
    198217
    199     // オーバーライド
    200     bool Override( UserProc *pUserProc, Prototype::Accessibility accessibility );
     218    // オーバーライドのための検索
     219    CMethod *FindForOverride( const UserProc *pUserProc );
    201220
    202221    const CMethod *GetMethodPtr( const UserProc *pUserProc ) const;
  • trunk/abdev/BasicCompiler_Common/include/Procedure.h

    r350 r351  
    220220    }
    221221
     222    // オーバーライド用に関数同士が等しいかどうかをチェックする
     223    bool IsEqualForOverride( const UserProc *pUserProc ) const
     224    {
     225        if( this->GetName() == pUserProc->GetName()                     // 名前空間及び名前が等しい
     226            && this->Params().Equals( pUserProc->Params() )             // パラメータが等しい
     227            && this->returnType.Equals( pUserProc->returnType ) )       // 戻り値が等しい
     228        {
     229            return true;
     230        }
     231        return false;
     232    }
     233
    222234    bool IsMacro() const
    223235    {
Note: See TracChangeset for help on using the changeset viewer.