- Timestamp:
- Aug 21, 2008, 11:04:52 PM (16 years ago)
- Location:
- trunk/ab5.0/abdev/compiler_x64
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/compiler_x64/Compile_Object.cpp
r704 r729 101 101 int typeSize = pClass->GetSize(); 102 102 103 if( pClass->IsAbstract() ){ 103 if(pClass->IsAbstract()) 104 { 105 std::string tempMessage; 106 BOOST_FOREACH( const CMethod *pMethod, pClass->GetDynamicMethods() ){ 107 if(pMethod->IsVirtual()){ 108 if(pMethod->IsAbstract()){ 109 if( !tempMessage.empty() ) 110 { 111 tempMessage += ", "; 112 } 113 tempMessage += pMethod->GetUserProc().GetName(); 114 } 115 } 116 } 117 118 // インターフェイスのvtbl 119 BOOST_FOREACH( const ::Interface *pInterface, pClass->GetInterfaces() ) 120 { 121 BOOST_FOREACH( const CMethod *pMethod, pInterface->GetDynamicMethods() ){ 122 if(pMethod->IsVirtual()){ 123 if(pMethod->IsAbstract()){ 124 if( !tempMessage.empty() ) 125 { 126 tempMessage += ", "; 127 } 128 tempMessage += pMethod->GetUserProc().GetName(); 129 } 130 } 131 } 132 } 133 104 134 //抽象クラスだったとき 105 compiler.errorMessenger.Output( 125,pClass->GetName().c_str(),cp);135 compiler.errorMessenger.Output(-1,"\"%s\" は抽象クラスです。インスタンス化することはできません(抽象メソッド … " + tempMessage + ")。",cp); 106 136 } 107 137 -
trunk/ab5.0/abdev/compiler_x64/Compile_ProcOp.cpp
r711 r729 176 176 sprintf( temporary, 177 177 "Return New %s(ObjPtr( This ),Get_LONG_PTR( (Get_LONG_PTR( ObjPtr(This)+SizeOf(VoidPtr) ) + SizeOf(LONG_PTR)*%d) As VoidPtr ) As VoidPtr )", 178 userProc.ReturnType().GetClass().GetFullName().c_str(),178 compiler.TypeToString( userProc.ReturnType() ).c_str(), 179 179 vtblMasterListIndex 180 180 );
Note:
See TracChangeset
for help on using the changeset viewer.