PDA

View Full Version : دلیل ایجاد دو فایل بعد از ایجاد class



saleh.hi.62
سه شنبه 01 تیر 1389, 18:11 عصر
من با eclipse کار میکنم.
وقتی که میخوام یک کلاس ایجاد کنم دو تا فایل ایجاد میکنه

squre.cpp




#include "squre.h"

squre::squre() {
// TODO Auto-generated constructor stub

}

squre::~squre() {
// TODO Auto-generated destructor stub
}



squre.h


#ifndef SQURE_H_
#define SQURE_H_

class squre {
public:
squre();
virtual ~squre();
};

#endif /* SQURE_H_ */


من گیج شدم دلیل این کار چی؟ چرا دوتا فایل ایجاد میشه؟ و چطور باید استفاده کرد از این دو فایل؟
ممنون میشم اگه کسی بتونه اینو روشن کنه برام :لبخندساده:

glassysmart
سه شنبه 01 تیر 1389, 20:27 عصر
سلام
اینکه پیش تعریف ها در یک فایل و پیاده سازی در یک فایل دیگه باشه هم برنامه را منسجم تر می کند و هم خوانایی را افزایش می دهد و هم فرایند اشکال زدایی را تسریع می کند کلا این یک امکان فوق العاده در c++ است

saleh.hi.62
چهارشنبه 02 تیر 1389, 05:25 صبح
دلایل بالا هم میتونه باشه ولی دلیل اصلیه این کار اینه که برای مثال شما یه پروژه داری که بیش از 10 یا 20 تا فایل cpp یا همون Source File داره.
مثلا .... , src1.cpp , src2.cpp src3.cpp , src4.cpp.
و فرض میکنیم در همه ی این فایل ها از کلاس squre شما استفاده شده.
حالا شما نباید بیاید در بالای هر کدام از این فایل های cpp کلاس squre رو Declare کنید.
شما داخل یک فایل header یا h تعریفهای خودتون رو میکنید و در هر فایل cpp این فایل h رو include میکنید.
یک کاربرد دیگه هم اینه که مثلا وقتی شما یک کتابخانه مینویسد تا دیگران استفاده کنند باید Type ها و Declaration ها و Function Prototype ها و .... رو داخل اون فایل h تعریف کنید و اون فایل رو همراه با فایل های دیگه به استفاده کننده بدید.
اگر پروژه های بزرگتری بنویسید و از فایل ها header استفاده نکنید ، خودتون کمبودش رو حس میکنید.

دوست عزیز ممنون از جوابتون
اما !
یه سوال که من داشتم اینه که هر زمان که من میخوام یک کلاس ایجاد کنم برام دوتا فایل ایجاد میکنه ! یکی .h و یکی . cpp
این واقعا ضروری و لازم؟؟؟؟؟