خطا در تعریف آرایه در c++ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

خطا در تعریف آرایه در c++

+1 امتیاز

سلام.

من اندازه آرایه را توسط تابع تعریف می کنیم ولی خطا میده یعنی تعریف همچین چیز ساده ای در c++ امکانپذیر نیست؟!!!!!

const int getArraySize() { return 32; }
int main()
{
int myArray[getArraySize()];
return 0;
}

 

سوال شده مرداد 24, 1398  بوسیله ی small (امتیاز 67)   3 12 17

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

اگر به صورت زیر تغییرش بدید کار می کنه در چنین مواردی باید از constexper استفاده کنید .البته برای هر تابعی نمیشه از constexper استفاده کرد شرایط استفاده از constexper توی توابع را در ادامه ذکر می کنم.

constexper int getArraySize() { return ۳۲; }
int main()
{
int myArray[getArraySize()];
return ۰;
}

 

  • بدنه تابع نباید حاوی موارد زیر باشد :
  1.  هیچ گونه goto
  2. بلوک های try/catch
  3. متغیرهای بدون مقدار اولیه 
  4. متغیرهای غیر Literal 
  5. هیچ استثنایی را نباید throw کنید .
 
 
  • نوع بازگشتی تابع باید یک نوع دقیق باشد.
  • اگر تابع constexpr عضوی از یک کلاس باشد، تابع نمی‌تواند مجازی باشد.
  • تمام پارامترهای تابع باید انواع دقیق باشند.
  • یک تابع constexpr را نمی‌توان فراخوانی کرد تا زمانی که در واحد ترجمه تعریف شود چرا که کامپایلر نیاز به دانستن تعریف کامل سورس دارد به طور خلاصه از template استفاده نکنید.
  • dynamic_cast()و cast reinterpret () مجاز نیستند.
  • new و delete هم مجاز به استفاده نیستند
پاسخ داده شده مرداد 24, 1398 بوسیله ی farnoosh (امتیاز 8,362)   20 44 59
انتخاب شد آذر 24, 1398 بوسیله ی small
خیلی ممنون کامل  و واضح .
...