PDA

View Full Version : سوال: برای ی این سازنده به این شکل تعریف میشه؟



saleh.hi.62
پنج شنبه 03 تیر 1389, 13:03 عصر
با سلام
چرا ما باید برای متغییرها داخل سازنده از new استفاده کنیم؟ چرا نباید به شکل معمول تعریف بشه؟که بعد مجبور باشیم delete کنیم؟






CRectangle::CRectangle (int a, int b) {
width = new int;
height = new int;
*width = a;
*height = b;
}

CRectangle::~CRectangle () {
delete width;
delete height;
}

حامد مصافی
پنج شنبه 03 تیر 1389, 13:09 عصر
عملگر new براي تخصيص يك بخش از حافظه به يك اشاره گر استفاده مي شود. اما اگر متغير شما يك اشاره گر نباشد از new هم استفاده نخواهيد كرد.

Salar Ashgi
پنج شنبه 03 تیر 1389, 17:32 عصر
همانطور که دوست عزیز ، حامد مصافی (http://www.barnamenevis.org/forum/member.php?u=6808) ذکر کردن ؛ اگه شما از اشاره گر یا به عبارتی از آرایه های پویا

استفاده نکرده باشید ، دیگر نیازی به استفاده از عملگر new نخواهید داشت و در نتیجه چون از حافظه پویا

استفاده نکرده اید ، نیازی به نوشتن تابع مخرب و بکار بردن عملگر delete نخواهد بود .

مثال : عدم نیاز به عملگر new




class Test{

public:
Test(int,int);
private:
int a,b;
};
//===============
Test::Test(int x,int y){
a = x;
b = y;
}


موفق باشید .