mr_esmaily
پنج شنبه 23 تیر 1384, 16:47 عصر
سلام
یه کلاس تجریدی بنام employee پیاده سازی شده که دارای حداقل یه تابع مجازی محض هست.
از کلاس employee کلاسی بنام manager درایو کردم.
حال در بدنه تابع ()main یه اشاره گر از نوع employee ساختم و به آن آدرس یه نمونه از manager رو نسبت دادم. بدین صورت :
employee * emp=new manager("Dan","Booth");
مشکل در خط زیر بُروز می کند :
if(typeid(*emp)==typeid(manager))
cout << "class Manager" << endl;
هنگام کامپایل خطایی بُروز داده نمیشه ولی هنگام اجرا با خطای زیر مواجه میشم :
An unhandled exception of type 'System.Runtime.InteropServices.SEHException' occurred in My Project 4.exe
Additional information: External component has thrown an exception.
غیر از مشکل فوق هنگام خروج از تابع ()main , هنگامی که می خوام فضای اشغال شده رو توسط خط زیر آزاد کنم :
delete emp;
با خطای زیر روبرو میشم :
DAMAGE : after Normal block (#47) at 0*030C4D10.
یه کلاس تجریدی بنام employee پیاده سازی شده که دارای حداقل یه تابع مجازی محض هست.
از کلاس employee کلاسی بنام manager درایو کردم.
حال در بدنه تابع ()main یه اشاره گر از نوع employee ساختم و به آن آدرس یه نمونه از manager رو نسبت دادم. بدین صورت :
employee * emp=new manager("Dan","Booth");
مشکل در خط زیر بُروز می کند :
if(typeid(*emp)==typeid(manager))
cout << "class Manager" << endl;
هنگام کامپایل خطایی بُروز داده نمیشه ولی هنگام اجرا با خطای زیر مواجه میشم :
An unhandled exception of type 'System.Runtime.InteropServices.SEHException' occurred in My Project 4.exe
Additional information: External component has thrown an exception.
غیر از مشکل فوق هنگام خروج از تابع ()main , هنگامی که می خوام فضای اشغال شده رو توسط خط زیر آزاد کنم :
delete emp;
با خطای زیر روبرو میشم :
DAMAGE : after Normal block (#47) at 0*030C4D10.