چرا نمی توان آرایه ای از reference تعریف کرد؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۱۷۴ نفر آنلاین
۰ عضو و ۱۷۴ مهمان در سایت حاضرند

چرا نمی توان آرایه ای از reference تعریف کرد؟

+1 امتیاز
54 بازدید

مثال زیر را ببینید.

float value1 = 1.f;
float value2 = 2.f
float &list[] = {value1, value2};

 

چرا تو c++ نمیشه یک آرایه ای از reference داشته باشیم؟ الان کلی خطا میده وقتی که کامپایل می کنم .

سوال شده آبان 16, 1393  بوسیله ی toopak (امتیاز 375)   4 9 51
فرض کن بشه. اون وقت list چیه؟ اشاره گره به حافظه‌های پراکنده؟

1 پاسخ

+3 امتیاز
 
بهترین پاسخ
برای ساختن آرایه static کامپایلر نیاز داره زمان کامپایل سایز رو بدونه و ببلیل این که  refrence ها ممکنه داخل پیاده سازی مربوطه سایزشون مشخص نباشه پس مجاز به تعریف آرایه از refrence نیستید. (این مورد این جا هم قبلا ذکر شده بود )
 
اگر واقعا به آرایه از  refrence نیاز دارید می تونید یک آرایه  از std::refrence_wrapper بسازید و استفاده کنید .
#include <iostream>

int main()
{
	float a = 2, b = 4;

	std::reference_wrapper<float> arr[]={ a, b };

	std::cout << arr[0];
}

 

 
پاسخ داده شده آبان 17, 1393 بوسیله ی BlueBlade (امتیاز 15,742)   13 17 85
ممنون.بسیار عالی بود
...