View Full Version : سلام دوستان. یه کوچولو توضیح و منظور از اینآچیه< بعدش کار :: در برنامه زیر چیه!!؟؟ ممنون
hosseinam1370
سه شنبه 27 اسفند 1392, 11:19 صبح
سلام دوستان. یه کوچولو توضیح و منظور از اینآچیه< بعدش کار :: در برنامه زیر چیه!!؟؟ ممنون #include "stdafx.h" #include "hossein.h" hossein::hossein(void) { } hossein::~hossein(void) { }
rahnema1
سه شنبه 27 اسفند 1392, 15:03 عصر
سلام
برای دسترسی به یک شمارنده enum یا عضو یک کلاس یا عضو یک فضای نام میشه از عملگر :: استفاده کرد.
در مورد مثال شما
می دانیم که هر کلاسی شامل سازنده constructor و تخریب کننده destructor هست. حتی اگه ما اونها را اعلان نکنیم کامپایلر به صورت پیش فرض و ضمنی آنها را اعلان می کند
ما هم می توانیم سازنده و مخرب را اعلان و تعریف کنیم. یک روش اینه که اعلان و تعریف ، هر دو داخل کلاس انجام بشه
یا اینکه اعلان را داخل کلاس انجام بدیم و تعریف را در خارج از کلاس انجام بدیم.
در فایل hossein.h شما یک کلاس را تعریف کردید به نام hossein و برای آن یک سازنده و تخریب کننده اعلان کردید
حالا می خواهید در خارج از کلاس آن سازنده و تخریب کننده را تعریف کنید که برای دسترسی به اعضای کلاس از جمله سازنده و تخریب کننده از :: استفاده میشه مثلا در فایل دیگه به نام main.cpp تعریف انجام میشه
//hossein.h
class hossein{
hossein(void);
~hossein(void);
};
//main.cpp
#include "hossein.h"
hossein::hossein(void) { }
hossein::~hossein(void) { }
int main()
{
//...
}
hosseinam1370
سه شنبه 27 اسفند 1392, 23:06 عصر
سلام
در مورد مثال شما
می دانیم که هر کلاسی شامل سازنده constructor و تخریب کننده destructor هست.
[/CPP]
چرا باید داشته باشه؟
چه نیازی هست؟
ممنونم
rahnema1
چهارشنبه 28 اسفند 1392, 07:23 صبح
با توجه به اینکه یک کلاس از ساختار داده پیچیده ای ممکنه تشکیل بشه وظیف سازنده مقدار دهی اولیه و تخریب کننده هم خالی کردن حافظه از اون شیء و اعضایش هست
مسئولیت سازنده اینه که هنگام ساخته شدن شیء به اعضای داده ای مقادیر اولیه معنادار (از نظر استفاده کننده کلاس) بده. به عنوان یک مثال جالب (منبع زیر) فرض کنید کلاس شما عبارت باشه از یک دستگاه عمل جراحی لیزر که مثلا یک عضو داده ای داشته باشه که زاویه تابش پرتو را مشخص می کنه. حالا برنامه نویس اون کلاس مسئولیت داره سازنده تابع را طوری تعریف کنه که اپراتور دستگاه هنگام روشن کردن اون مجبور باشه زاویه تابش پرتو را به صورت دستی وارد سیستم بکنه تا این زاویه یک زاویه معنادر باشه در نتیجه دقیقا لیزر به اون قسمتی برخورد بکنه که لازمه نه اینکه یک مقدار رندم و یا مثلا صفر داشته باشه که موجب بشه لیزر به جای دیگه ای برخورد کنه. به قول خودمون اومد ابرو را اصلاح کنه زد چشمش را کور کرد :)
http://cs106l.stanford.edu
کتابهای آموزشی و منابع مختلف به طور کامل در این مورد توضیح داده اند
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.