اطلاعیه

Collapse
No announcement yet.

c++ گروهی

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پاسخ : c++ گروهی

    نوشته اصلی توسط negin-bahadori
    یعنیآ‌ هیچکس اینجا نیست که pointer و توضیح بده؟ :NO:
    آدرس هر متغیر را اشاره گر یا pointer می نامند. و برای فراخوانیشون باید بصورت مثلا
    کد:
    int *p
    انجام داد.
    در اینجا فرض میکنیم که متغیر اشاره گر p در آدرس 1000 حافظه است.

    دیدگاه


      پاسخ : c++ گروهی

      از دوستان کسی هست که با پوینتر به تابع تو یک کلاس کار کرده باشه؟
      بیرون کلاس نه! فقط توی کلاس. یعنی یکی از اعضای کلاس یه پوینتر به تابع باشه.

      دیدگاه


        پاسخ : c++ گروهی

        انگار دیگه هیچ کس اینجا نیست ...

        منظورتون یه چیزی توی این مایهآ‌هاست... ?

        کد:
        class DataProcessor : public Pipeline
        {
        public:
        float *GetMask();
        در حالیآ‌ که GetMask خودش:

        کد:
        float *DataProcessor::GetMask()

        دیدگاه


          پاسخ : c++ گروهی

          ممنون. بخش اولش درسته اما بخش دومش رو میخوام یه تابعی از یه کلاس دیگه باشه. البته کامپایلر من IAR AVR هست نه مال PC .

          دیدگاه


            پاسخ : c++ گروهی

            پس احتمالا منظورتون اینه...

            کد:
            #include "CloudBuffer.h"
            
            class DataProcessor : public Pipeline
            {
            public:
            ...
            
            CloudBuffer *m_Buffer;

            دیدگاه


              پاسخ : c++ گروهی

              منظور من اینه :
              کد:
              //--------------------------
              class Timer
              {
              public:
                long Cnt;
                long TopValue;
                bool Enable;
                void (*Timer_Tick)();
              };
              //--------------------------
              class Button
              {
              public:
              	Timer timer_btn_show;
              	void Init();
              	void timer_btn_show_Tick();
              };
              void Button::Init()
              {
              	timer_btn_show.Enable = true;
              	timer_btn_show.Timer_Tick = timer_btn_show_Tick;
              }
              تو کلاس دوم خطا میگیره و میگه نمیتونی اینکا رو بکنی.
              اگر از یک تابع خارج از کلاس یعنی یک تابعی که عضو هیچ کلاسی نیست استفاده کنم مشکلی پیش نمیاد و کار میکنه، اما اگر یک تابع از یک کلاس باشه خطا میگیره.

              دیدگاه


                پاسخ : c++ گروهی

                نوشته اصلی توسط امیر . م
                از دوستان کسی هست که با پوینتر به تابع تو یک کلاس کار کرده باشه؟
                بیرون کلاس نه! فقط توی کلاس. یعنی یکی از اعضای کلاس یه پوینتر به تابع باشه.
                شدنی نیست
                شما میتونید توایع استاتیک از یک کلاس رو فراخوانی کنید اما تابعی که مال Object باشه رو نمیشه (یعنی من بلد نیستم)
                شما میتونید یک تابع استاتیک تعریف کنید و تو ورودیش یک کپی از آبجکتی که میخواید روش کار بشه رو به صورت Pass by reference بفرستید و رو اون تغییرات انجام بدید

                دیدگاه


                  پاسخ : c++ گروهی

                  نوشته اصلی توسط negin-bahadori
                  ... میآ‌شه لطفا جواب سوالهای من و اگه میدونید بدید...


                  اگه یه آرای تعریف کرده باشم مثل این:

                  کد:
                  int distances[3][6]={{1,0,0,0,1,0},{1,1,0,0,1,1},{1,0,0,0,0,0}};

                  distances ----- آدرس اولین عضو آرایه
                  *distances------آدرس اولین عضو آرایه

                  distances+1 --------آدرس دومین عضو آرایه


                  حالا distances+1* آدرس کدوم عضو آرایه رو میده؟
                  واقعا معذرت میخوام
                  من یکم سرم شلوغ بود نتونسته بودم سر بزنم به اینجا

                  اما در مورد سوالتون
                  ببینید در C و پلاس پلاس آرایه رو میشه مثل یک اشاره گر باهاش کار کرد اما این کار رو نکنید بهتره چون ممکنه از حدود آرایه خارج شید و بقیه متغیرها تون رو اشتباهی تغییر بدید.

                  اما به صورت کلی میشه گفت instances به یک فضایی از حافظه اشاره میکنه که درش ۳ اینتیجر ذخیره شده اند (البته در سیستم های ۳۲ یبتی) هر کدوم از این اعداد خودشون به فضایی در حافظه اشاره میکنند که در اونجا ۶ اینتیجر (این یکی مهم نیست سیستم چند بیتی باشه چون اشاره گر نیستند) قرار گرفته اند که این ۶ اینتیجر همون اعدادی هستند که شما بالا تو مثالتون نوشتید.

                  ببینید پونتر ها پیچیده هستند من اینجا میوتم مثال شما رو جواب بدم ولی فکر میکنم اگر اشاره گر به صورت جداگانه توضیح داده بشه بهتر باشه.

                  اضافه شده در تاریخ :
                  من خودم مطلب خوبی برای اشاره گر نداشتم اما این سایتها مطالب خوبی دارند میتونید اطلاعات خوبی در این زمینه پیدا کنید.


                  http://www.cplusplus.com/doc/tutorial/pointers/
                  http://www.tutorialspoint.com/cplusplus/cpp_pointers.htm

                  اینها ۲ تا سرچ اول گوگل بودند من خودم نخوندم مطالبشون رو ولی شکلها شون خوب بود به نظرم اولی خوب توضیح داده

                  دیدگاه


                    پاسخ : c++ گروهی

                    نوشته اصلی توسط hamidreza.nayeri
                    شدنی نیست
                    شما میتونید توایع استاتیک از یک کلاس رو فراخوانی کنید اما تابعی که مال Object باشه رو نمیشه (یعنی من بلد نیستم)
                    شما میتونید یک تابع استاتیک تعریف کنید و تو ورودیش یک کپی از آبجکتی که میخواید روش کار بشه رو به صورت Pass by reference بفرستید و رو اون تغییرات انجام بدید
                    ممنونم از توضیحتون ، اما من نمیخواستم این کار رو بکنم. من تو کلاس مد نظرم بود.

                    دیدگاه


                      پاسخ : c++ گروهی

                      نوشته اصلی توسط امیر . م
                      ممنونم از توضیحتون ، اما من نمیخواستم این کار رو بکنم. من تو کلاس مد نظرم بود.
                      خواهش میکنم
                      عرض کردم شدنی نیست. شما نمیتونید تابع عضو یک آبجکت رو فراخونی کنید. (یعنی من خیلی دنبالش گشتم چیزی پیدا نکردم)

                      دیدگاه


                        پاسخ : c++ گروهی

                        من اون سالها که C++ رو تو borlandC++ کامپیوتر کار میکردم ، این موضوع رو انجام میدادم و مشکلی هم نداشت.
                        مشکل من تو کامپایلر IAR مربوط به AVR هست که خطا میگیره.

                        دیدگاه


                          پاسخ : c++ گروهی

                          نوشته اصلی توسط امیر . م
                          من اون سالها که C++ رو تو borlandC++ کامپیوتر کار میکردم ، این موضوع رو انجام میدادم و مشکلی هم نداشت.
                          مشکل من تو کامپایلر IAR مربوط به AVR هست که خطا میگیره.
                          شاید، علتش هم اینه که خیلی از کامپایلر ها استاندارد نیستند.
                          تو خود استاندارد سی نمیشه این کار رو انجام داد خطایی هم که ازتون میگیره برای همینه.
                          شما باید تابع رو به صورت استاتیک تعریف کنید و بعد هم Object مد نظرتون رو به صورت Pass by reference براش بفرستید. کار سختی نیست و اضافه بار زیادی هم برای شما نداره.

                          اضافه شده در تاریخ :
                          نوشته اصلی توسط hamidreza.nayeri
                          واقعا معذرت میخوام
                          من یکم سرم شلوغ بود نتونسته بودم سر بزنم به اینجا

                          اما در مورد سوالتون
                          ببینید در C و پلاس پلاس آرایه رو میشه مثل یک اشاره گر باهاش کار کرد اما این کار رو نکنید بهتره چون ممکنه از حدود آرایه خارج شید و بقیه متغیرها تون رو اشتباهی تغییر بدید.

                          اما به صورت کلی میشه گفت instances به یک فضایی از حافظه اشاره میکنه که درش ۳ اینتیجر ذخیره شده اند (البته در سیستم های ۳۲ یبتی) هر کدوم از این اعداد خودشون به فضایی در حافظه اشاره میکنند که در اونجا ۶ اینتیجر (این یکی مهم نیست سیستم چند بیتی باشه چون اشاره گر نیستند) قرار گرفته اند که این ۶ اینتیجر همون اعدادی هستند که شما بالا تو مثالتون نوشتید.

                          ببینید پونتر ها پیچیده هستند من اینجا میوتم مثال شما رو جواب بدم ولی فکر میکنم اگر اشاره گر به صورت جداگانه توضیح داده بشه بهتر باشه.
                          ببخشید من یک اشتباه خیلی بزرگ انجام دادم :angry:
                          آرایه های دو بعدی در سی و پلاس پلاس عملا یک بعدی هستند.
                          یعنی سوالی که شما پرسیدید اصلا معنا نداره.

                          ببینید شما دارید طول هر بعد رو مشخص میکنید دیگه این آرایه شما میشه یک ماتریسی که ۳*۶ یعنی ۱۸ عضو داره. سی پلاس پلاس و سی این رو در غالب یک آرایه خطی که ۱۸ عضو داره میبینن منتهی میگن ۶ عضو اول مال سطر اوله ۶ عضو دوم مال سطر دوم و ۶ عضو سوم مال سطر سومه پس اون سوالی که شما پرسیدید، اعدادی برمیگردونه که معنای درستی ندارند و دسترسی به اون اعداد هم شاید باعث بشه سیستم عامل برنامه تون رو ببنده چون شما احتمال داره به فضایی دسترسی پیدا کنید که براتون تعریف نشده.

                          همین مسیله برای بعد های بالاتر هم هست. یعنی آرایه سه بعدی هم یک بعدی نوشته میشه و ....

                          دیدگاه


                            پاسخ : c++ گروهی

                            یه سر به این لینک بزنین؛ دانلود آموزش ویدیویی سی شارپهست.البته میدونم موضوع این تاپیک ++C هست.گفتم شاید کسی خواست این رو هم داشته باشه تا سرفرصت نگاه کنه.


                            اضافه شده در تاریخ :
                            این هم دانلود آموزش ویدیویی ++C

                            دیدگاه


                              پاسخ : c++ گروهی

                              بریم سراغ وراثت؟

                              اضافه شده در تاریخ :
                              با تعریفِ کلاس شروع میآ‌کنم:

                              برای به دست آوردن مساحتِ یک مستطیل، میتونیم مستطیل رو به صورت یک کلاس تعریف کنیم. بهترین و قابل فهمترین مثال به نظرم میآ‌تونه این باشه:

                              کد:
                              class Rectangle {
                                int width, height;
                               public:
                                void set_values (int,int);
                                int area (void);
                              } rect;
                              اسم کلاس و گذاشتیم rectangle و یک object از اون کلاس تعریف کردیم به اسم rect.


                              بقیه ی توضیحات و کیآ‌ میآ‌تونه بده؟

                              دیدگاه


                                پاسخ : c++ گروهی

                                نوشته اصلی توسط negin-bahadori
                                با تعریفِ کلاس شروع میآ‌کنم:

                                برای به دست آوردن مساحتِ یک مستطیل، میتونیم مستطیل رو به صورت یک کلاس تعریف کنیم. بهترین و قابل فهمترین مثال به نظرم میآ‌تونه این باشه:

                                کد:
                                class Rectangle {
                                  int width, height;
                                 public:
                                  void set_values (int,int);
                                  int area (void);
                                } rect;
                                اسم کلاس و گذاشتیم rectangle و یک object از اون کلاس تعریف کردیم به اسم rect.


                                بقیه ی توضیحات و کیآ‌ میآ‌تونه بده؟


                                سلام همگی.
                                برید قسمت 31 رواز لینک زیر دانلود کنید ،آموزش آقای بازرگان
                                شما میتونید به طور مفهومی با کلاس و اشیا و وراثت آشنا شید.
                                از دقیقه ی 17 به بعد شروع میشه کلاس ها
                                خاستید ادامشو دانلود کنید از دستور زبانی هم میفهمید.

                                http://maktabkhooneh.org/course?course=bazargan466
                                به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
                                (پيش به سوي هدف)

                                دیدگاه

                                لطفا صبر کنید...
                                X