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

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

+1 امتیاز

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

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

 

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

سوال شده آبان 16, 1393  بوسیله ی toopak (امتیاز 2,458)   16 47 66
فرض کن بشه. اون وقت 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,315)   15 18 89
انتخاب شد آبان 18, 1393 بوسیله ی toopak
ممنون.بسیار عالی بود
...