Changeset 305 in dev for trunk


Ignore:
Timestamp:
Aug 26, 2007, 3:57:23 AM (17 years ago)
Author:
dai_9181
Message:

非仮想関数のオーバーライドをエラー扱いにした

Location:
trunk/abdev/BasicCompiler_Common
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler_Common/error.cpp

    r299 r305  
    199199    if(num==134) lstrcpy( msg,"ObjPtr関数にはオブジェクト インスタンス以外を指定できません。" );
    200200    if(num==135) lstrcpy( msg, "クラスまたはインターフェイス以外の型を継承元として指定することはできません。" );
     201    if(num==136) lstrcpy( msg, "非仮想関数に対してオーバーライドしようとしました。" );
    201202
    202203    //Enum関連
  • trunk/abdev/BasicCompiler_Common/src/Class.cpp

    r299 r305  
    514514    BOOST_FOREACH( CMethod *pMethod, pobj_c->GetMethods() ){
    515515        if( pMethod->GetUserProc().GetName() == temporary ){
    516             if( pMethod->GetUserProc().Params().Equals( pUserProc->Params() ) ){
    517 
    518                 if(pMethod->IsVirtual()){
    519                     //メンバ関数を上書き
    520                     pMethod->SetUserProcPtr( pUserProc );
    521                     pMethod->Override();
    522 
    523                     if( !isOverride ){
    524                         SetError(127,NULL,nowLine);
    525                     }
    526                     if(pMethod->GetAccessibility() != accessibility ){
    527                         SetError(128,NULL,nowLine);
    528                     }
    529 
    530                     pUserProc->SetMethod( pMethod );
    531                     return;
    532                 }
     516            if( pMethod->GetUserProc().Params().Equals( pUserProc->Params() ) )
     517            {
     518                //メンバ関数を上書き
     519                pMethod->SetUserProcPtr( pUserProc );
     520                pMethod->Override();
     521
     522                if( !pMethod->IsVirtual() )
     523                {
     524                    // オーバーライドミス
     525                    SetError(136,NULL,cp);
     526                }
     527                if( !isOverride )
     528                {
     529                    SetError(127,NULL,nowLine);
     530                }
     531                if(pMethod->GetAccessibility() != accessibility )
     532                {
     533                    SetError(128,NULL,nowLine);
     534                }
     535
     536                pUserProc->SetMethod( pMethod );
     537                return;
    533538            }
    534539        }
  • trunk/abdev/BasicCompiler_Common/src/Source.cpp

    r303 r305  
    44
    55#include <jenga/include/common/Directory.h>
     6#include <jenga/include/common/Path.h>
    67
    78#include <jenga/include/smoothie/Smoothie.h>
     
    616617            else continue;
    617618
    618             if(i){
     619            if( i == 0 && Jenga::Common::Path(temporary).GetFileName() == "basic" )
     620            {
     621            }
     622            else
     623            {
    619624                //ディレクティブが消えるため、一行減ってしまうのを防ぐ(basic.sbpを除く)
    620625                Text::SlideString(buffer+i2,1);
Note: See TracChangeset for help on using the changeset viewer.