نمایش نتایج 1 تا 4 از 4

نام تاپیک: مشکلات تعریف متغییر static در کلاس در زبان ++C

  1. #1

    مشکلات تعریف متغییر static در کلاس در زبان ++C

    سلام
    1) چرا نمیشه متغییر استاتیک رو در همون تعریف کلاس مقدار دهی کرد؟(مثلا متغییر STATIC رو در قسمت PUBLIC که تعریف میکنم اگه مقدار اولیه بهش بدم کامپایلر ارور میده ولی برای متغییر های معمولی این مشکل وجود نداره)
    2) چرا نمیشه مقدار متغییر های STATIC رو در پروژه به کمک :: خوند؟

    class MyClass {  public:
    MyClass(void);
    int Num1 = 2;
    static int Num2;


    private:
    };

  2. #2

    نقل قول: مشکلات تعریف متغییر static در کلاس در زبان ++C

    نقل قول نوشته شده توسط md3848 مشاهده تاپیک
    سلام
    1) چرا نمیشه متغییر استاتیک رو در همون تعریف کلاس مقدار دهی کرد؟(مثلا متغییر STATIC رو در قسمت PUBLIC که تعریف میکنم اگه مقدار اولیه بهش بدم کامپایلر ارور میده ولی برای متغییر های معمولی این مشکل وجود نداره)
    2) چرا نمیشه مقدار متغییر های STATIC رو در پروژه به کمک :: خوند؟

    class MyClass {  public:
    MyClass(void);
    int Num1 = 2;
    static int Num2;


    private:
    };
    سلام

    برای اینکه شما بتونید یک متغیر رو به صورت استاتیک تعریف کنید به روش زیر عمل کنید:

    const static int Num2 = 2;


    حتی میتونید از روش های پیش پردازنده ها استفاده کنید.

    #define Num2 2;

  3. #3

    نقل قول: مشکلات تعریف متغییر static در کلاس در زبان ++C

    ممنون از شما - خب const تعریف کنم که دیگه نمیشه مقدار متغییر رو تغییر داد که - میشه؟

    در ضمن من هنوز تو دسترسی به متغییر static داخل کلاس مشکل دارم و visual studio ارور میده.

    فایل پروژه
    #include "stdafx.h"#include <iostream>
    #include "Ali.h"
    MyClass Obj1;


    int main(void)
    {
    std::cout << MyClass::Num2;



    while (1);
    return 0;
    }



    فایل ALI.H
    class MyClass {public:
    MyClass(void);
    int Num1;
    const static int Num2;
    static int Func1(void);
    private:
    };


    فایل ALI.cpp
    #include "stdafx.h"#include "Ali.h"


    MyClass::MyClass() {}

  4. #4

    نقل قول: مشکلات تعریف متغییر static در کلاس در زبان ++C

    نقل قول نوشته شده توسط md3848 مشاهده تاپیک
    ممنون از شما - خب const تعریف کنم که دیگه نمیشه مقدار متغییر رو تغییر داد که - میشه؟

    در ضمن من هنوز تو دسترسی به متغییر static داخل کلاس مشکل دارم و visual studio ارور میده.

    فایل پروژه
    #include "stdafx.h"#include <iostream>
    #include "Ali.h"
    MyClass Obj1;


    int main(void)
    {
    std::cout << MyClass::Num2;



    while (1);
    return 0;
    }



    فایل ALI.H
    class MyClass {public:
    MyClass(void);
    int Num1;
    const static int Num2;
    static int Func1(void);
    private:
    };


    فایل ALI.cpp
    #include "stdafx.h"#include "Ali.h"


    MyClass::MyClass() {}

    فایل .h


    #ifndef MYCLASS_H
    #define MYCLASS_H


    class MyClass {public:
    MyClass(void);
    int Num1;
    static int const Num2;
    static int Func1(void);
    private:
    };

    #endif // MYCLASS_H



    فایل .cpp


    #include "myclass.h"

    #include <iostream>

    MyClass::MyClass(){}

    int const MyClass::Num2 = 10;


    و در نهایت main


    std::cout << MyClass::Num2;

تاپیک های مشابه

  1. تعریف یک رویداد در کلاس
    نوشته شده توسط o0iman0o در بخش برنامه نویسی در Delphi
    پاسخ: 6
    آخرین پست: چهارشنبه 23 مرداد 1392, 10:22 صبح
  2. سوال: در مورد فلسفه تعریف آرایه دوبعدی در زبان C
    نوشته شده توسط farid456 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 1
    آخرین پست: چهارشنبه 13 اردیبهشت 1391, 03:35 صبح
  3. سوال: تعریف متغییر Static در دلفی
    نوشته شده توسط kamran_14 در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 2
    آخرین پست: پنج شنبه 05 اسفند 1389, 15:13 عصر
  4. سوال: تعريف داده boolean در زبان c
    نوشته شده توسط sarlakhadi در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 11
    آخرین پست: جمعه 08 خرداد 1388, 16:44 عصر
  5. static در زبان C
    نوشته شده توسط alireza_tavakol در بخش C#‎‎
    پاسخ: 13
    آخرین پست: پنج شنبه 26 مهر 1386, 00:27 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •