ايران ويج

نسخه‌ی کامل: تابع مخرب کلاس
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
سؤال من خیلی مبتدیه و خوبیش اینه که همه جوابش رو بلدن
برا کنکور دارم میخونم...
تو کتابا نوشته تابع سازنده ی یک کلاس هم نام با خود کلاس و تابع مخرب نیز همنام با خود کلاس به اضافه ی علامت ~ در ابتدای آن ولی یه جایی بعد از علامت ~ اسمی غیر از اسم کلاس گذاشته بود!
1. آیا همین که علامت ~ مد ابتدای نام تابعی بیاد به عنوان مخرب در نظر گرفته میشه؟
2. میشه فقط از علامت ~ استفاده کرد بدون نام؟
کاری به Inline بودن یا نبودن هم ندارم.
کد:
حالت عادی
class MyClass{
MyClass(){cout<<"constructor"}
~MyClass(){cout<<"destructor"}
}


اینجوری میشه یا نه
class MyClass{
MyClass(){cout<<"constructor"}
~OtherName(){cout<<"destructor"}
}


اینجوری چطور
class MyClass{
MyClass(){cout<<"constructor"}
~(){cout<<"destructor"}
}
لطفا به حالت آخر نخندید. پرسیدن که ضرر نداره...
تا اونجایی که من میدونم حتما باید علامت ~ به اضافه اسم کلاس باشه. همین الان هم امتحان کردم. غیر از این (یعنی اون دو تا حالت دیگه که شما گفتی) ارور میده !
خیلی ممنون
یعنی مطمئن باشم که غلط املایی بوده تو کتاب؟
نکته مهم اینه که حتما باید با C++ کد تابع مخرب رو تست کنید
خیلی ممنون که تست کردید ولی آیا با C++ بود؟
چون c و turbo c و c++ تفاوت های جزئی دارند و توی کنکور حتما باید C++ بلد باشیم
البته ببخشید من تفاوت c و turbo c رو نمیدونم منظورم این بود که C++ یه فرق هایی داره
راستی کامپایلر error میداد یا تابع اجرا نمیشد؟
بله با C++‌تست كردم.
ارور كامپايل ميداد.
اصلا منطقي هم نيست ! چون اگه بشه براي يه تابع مخرب اسمي غير از اسم كلاس گذاشت پس يعني ميشه چندتا تابع مخرب تعريف كرد‌‌ ؟! تابع مخرب بايد يكي باشه (برعكس سازنده كه ميتونه بيشتر از يكي باشه) حالا اگه با اسم غير كلاس و چندتا باشه كامپايلر چطوري تشخيص بده كدوم رو اجرا كنه‌؟!
نقل قول: سازنده كه ميتونه بيشتر از يكي باشه
چطوری؟ لطفا نمونه کد بذارید.
با تشکر
salam ! bebakhshid ! baz internetemun ro ghat kardan forsat nemikonam sar bezanam !

in class 3ta tabe sazande dare
کد:
#include <iostream>
using namespace std;

class num
{
protected:
    int value;
public:
    num()
    {
        value = 0;
    }
    num (int num_value)
    {
        value = num_value;
    }
    num (num& n)
    {
        value = n.value;
    }

    int getvalue()
    {
        return value;
    }
};

int main()
{
    num n1;
    num n2(10);
    num n3(n2);

    cout << n1.getvalue() << " " << n2.getvalue() << " " << n3.getvalue() << endl;
    return 0;
}
سلام ممکنه در مورد کلاس poly به زبان ++c توضیح بدین؟؟
(۱۹-اردیبهشت-۱۳۸۹, ۱۷:۴۱:۳۰)puneh نوشته است: [ -> ]سلام ممکنه در مورد کلاس poly به زبان ++c توضیح بدین؟؟

سورس اين كلاس كه ميگيد رو داريد اينجا بزاريد ؟