Changeset 352 in dev for trunk/abdev
- Timestamp:
- Oct 19, 2007, 2:51:36 AM (17 years ago)
- Location:
- trunk/abdev/BasicCompiler_Common
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler_Common/include/Method.h
r351 r352 61 61 virtual const CClass *GetInheritsClassPtr() const = 0; 62 62 virtual void SetInheritsClassPtr( const CClass *pInheritsClass ) = 0; 63 virtual bool IsNotUse() const = 0; 64 virtual void SetNotUseMark( bool isNotUse ) = 0; 63 65 }; 64 66 … … 69 71 bool isConst; 70 72 const CClass *pInheritsClass; 73 74 // 他のインターフェイスへ実装が移った場合(基底クラスメソッドのインターフェイス実装)はこのフラグをオンにする 75 bool isNotUse; 71 76 72 77 // XMLシリアライズ用 … … 82 87 ar & BOOST_SERIALIZATION_NVP( isConst ); 83 88 ar & boost::serialization::make_nvp("pInheritsClass", const_cast<CClass *&>(pInheritsClass)); 89 ar & BOOST_SERIALIZATION_NVP( isNotUse ); 84 90 } 85 91 … … 91 97 , isConst( isConst ) 92 98 , pInheritsClass( pInheritsClass ) 99 , isNotUse( false ) 93 100 { 94 101 } … … 99 106 , isConst( method.IsConst() ) 100 107 , pInheritsClass( method.GetInheritsClassPtr() ) 108 , isNotUse( false ) 101 109 { 102 110 } … … 138 146 { 139 147 this->pInheritsClass = pInheritsClass; 148 } 149 virtual bool IsNotUse() const 150 { 151 return isNotUse; 152 } 153 virtual void SetNotUseMark( bool isNotUse ) 154 { 155 this->isNotUse = isNotUse; 140 156 } 141 157 }; … … 187 203 virtual const CClass *GetInheritsClassPtr() const{SetError();return NULL;} 188 204 virtual void SetInheritsClassPtr( const CClass *pInheritsClass ){SetError();} 205 virtual bool IsNotUse() const 206 { 207 return false; 208 } 209 virtual void SetNotUseMark( bool isNotUse ) 210 { 211 SetError(); 212 } 189 213 }; 190 214 BOOST_CLASS_EXPORT( StaticMethod ); -
trunk/abdev/BasicCompiler_Common/src/Class.cpp
r351 r352 459 459 460 460 ///////////////////////////////////////////////////////////////// 461 // 基底クラスのメソッドからインターフェイスメソッドを再実 する461 // 基底クラスのメソッドからインターフェイスメソッドを再実装する 462 462 ///////////////////////////////////////////////////////////////// 463 463 BOOST_FOREACH( CMethod *pMethod, GetDynamicMethods() ) … … 467 467 { 468 468 pMethodForOverride->Override( &pMethod->GetUserProc(), pMethod->GetAccessibility(), false ); 469 470 // 実装元になるメソッドは呼び出し不可にしておく(オーバーロードの解決から除外する) 471 pMethod->SetNotUseMark( true ); 469 472 } 470 473 } -
trunk/abdev/BasicCompiler_Common/src/Method.cpp
r351 r352 109 109 const Methods &methods = *this; 110 110 for( int i=(int)methods.size()-1; i>=0; i-- ){ 111 if( methods[i]->GetUserProc().GetName() == methodName ){111 if( methods[i]->GetUserProc().GetName() == methodName && methods[i]->IsNotUse() == false ){ 112 112 subs.push_back( &methods[i]->GetUserProc() ); 113 113 }
Note:
See TracChangeset
for help on using the changeset viewer.