مقداردهی به آرایه در سازنده کلاس - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

مقداردهی به آرایه در سازنده کلاس

+2 امتیاز

سلام به همگی.

برای مقداردهی اولیه به یک آزایه در سازنده به صورت زیر عمل کردم ولی هر کاری می کنیم خطا میده.

class MyClass 
{
public:
 MyClass() : my_arr({1,2,3,4,5}) {}
private:
 int my_arr[5];
};

 

سوال شده مهر 17, 1393  بوسیله ی toopak (امتیاز 2,458)   16 47 66
پیغام خطا رو هم بنویسید چون این کد درست کار میکنه .

2 پاسخ

+1 امتیاز

بهتر my_arr را static تعریف کنید و بعد در سورس مقدار دهیش کنید.

//header
class Test{
public:
    Test() {}
    static const int a[3];
private:

};


//source
const int Test::a[3] = {1,2,3};

 

پاسخ داده شده مهر 19, 1393 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
+1 امتیاز

برای استفاده از aggregate initializer نیازی به پرانتز نیست  .

کد زیر رو کامپایلر هایی که c++11 رو کامل پشتیبانی می کنن اجرا می کنن : (بغیر ازvisual studio  )

#include <iostream>   
      
class MyClass
{
public:
    MyClass() : my_arr{ 1, 2, 3, 4, 5 } {}
private:
	int my_arr[5];
};
int main() {
	MyClass c;
}

برای  vs هم از همون روش static بالا استفاده کنید.

 

پاسخ داده شده مهر 20, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
...