PDA

View Full Version : مبتدی: چند سئوال ساده



omidparkour
پنج شنبه 05 دی 1392, 05:28 صبح
سلام
من تازه شروع به برنامه نویسی شی گرا سی پلاس پلاس کردم ویکسری کد ها رو فقط حفظ کردم و نمیدونم دقیقا چی میکنن
فرض کنید که من برنامه ی زیر رو نوشتم
#include "stdafx.h"
#include "iostream"

using namespace std;

class student
{
int x;
public:
char name[15];
char fname[15];
void setname(char* name)
{
strcpy(this->name,name);


}
char* getname()
{
return name;
}

};
void main ()
{

student s1;
char name[15];
s1.setname(name);

}
در برنامه ی بالا این چند خطی که در زیر نوشتم کارشون چیه؟؟
char* name
strcpy(this->name,name);
char* getname()

NeoFighT
پنج شنبه 05 دی 1392, 09:23 صبح
خط اول
char* name یک آرایه ازکارکتر هاست (رشته) که برای فراخوانی تابع به عنوان آرگومان گرفته میشود.

خط دوم
تابع strcpy دو رشته را میگیرد و رشته دوم را در رشته اول کپی میکند و در برنامه متغیر char که به عنوان آرگومان به تابع داده شده است در متغیر کلاس کپی میشود.

خط سوم
این تابع یک متغیر کلاس به اسم name را بر میگرداند.

اگر مشکلی داشتی بگو تا بیشتر توضیح بدم.

omidparkour
پنج شنبه 05 دی 1392, 09:37 صبح
من در خط اول منظورم این هستش که چرا باید * بزاریم؟؟؟؟؟؟؟؟؟؟

لطفا تاپیک زیر رو هم بررسی کنید


http://barnamenevis.org/showthread.php?433640-%DA%86%D9%86%D8%AF-%D8%B3%D8%A6%D9%88%D8%A7%D9%84-%D8%B3%D8%A7%D8%AF%D9%87

NeoFighT
پنج شنبه 05 دی 1392, 09:55 صبح
برای درک این مطلب باید یه آموزش برای "ارجاع ها و اشاره گر ها" پیدا کنید.
در همه آموزش ها "ارجاع ها و اشاره گر ها" به عنوان یک فصل مهم آموزش داده میشود و اینجا نمیشه به راحتی توضیح داد.
در این حد بدونید که این نوع متغیر ها آدرس رو نگه داری میکنند و چون متغیر name ما یک آرایه ای از char هست آدرس اولین خونه متغیر رو نگه داری میکنه.
(اگه متوجه نشدید حتما یک آموزش بخواندید)

omidparkour
پنج شنبه 05 دی 1392, 09:57 صبح
من خوندم اما یاد نگرفتم !!!!!!!ً

NeoFighT
پنج شنبه 05 دی 1392, 10:00 صبح
بله یه مقدار سخت هستش و به راحتی نمیشه یاد گرفت.
باید تمرین کنید.

omidparkour
پنج شنبه 05 دی 1392, 10:01 صبح
http://barnamenevis.org/showthread.php?433618-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87