Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
#1

Вычисляемые константы - C++

20.06.2012, 07:53. Просмотров 535. Ответов 9
Метки нет (Все метки)

Можно ли сделать так, чтобы сначала вычислить, а затем сделать константой?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Root2x
 Аватар для Root2x
12 / 12 / 0
Регистрация: 21.05.2012
Сообщений: 52
20.06.2012, 13:55     Вычисляемые константы #2
Слушай, попробуй так, по крайней мере компилятор VStudio 10 успешно это пережевывает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
    int A = 0;
 
    cin>> A;
    const int B = A;
    cout<< B;
 
    _getch();
    return 0;
}
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
20.06.2012, 14:01     Вычисляемые константы #3
Root2x, Ага. А теперь попробуй массив создать статический из такой "константы".
Root2x
 Аватар для Root2x
12 / 12 / 0
Регистрация: 21.05.2012
Сообщений: 52
20.06.2012, 14:04     Вычисляемые константы #4
Да, не получится, но ведь defer, не указывал это в условии задачи =D
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
20.06.2012, 14:08     Вычисляемые константы #5
ForEveR, попробовал, работает.
правда сам не понимаю почему это работает
Миниатюры
Вычисляемые константы  
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
20.06.2012, 14:10     Вычисляемые константы #6
sandye51, gcc подозреваю?
Там и так отработает.
C++
1
2
3
4
5
6
7
#include <iostream>
 
int main()
{
   int n = 5;
   int array[n];
}
Однако.
Bash
1
2
3
4
forever@pterois:~/My_pro1/cpp_pro$ g++ -o new new.cpp -pedantic -Werror
new.cpp: В функции «int main()»:
new.cpp:6:15: ошибка: ISO C++ запрещает массив переменного размера «array» [-Werror=vla]
cc1plus: all warnings being treated as errors
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
20.06.2012, 14:11     Вычисляемые константы #7
ForEveR, нет. Apple LLVM complier 3.1
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
20.06.2012, 14:14     Вычисляемые константы #8
sandye51, А что с pedantic скажет?
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
20.06.2012, 14:22     Вычисляемые константы #9
Код
main.cpp: In function ‘int main()’:
main.cpp:11: error: ISO C++ forbids variable-size array ‘array1’
main.cpp:18: error: ISO C++ forbids variable-size array ‘array2’
Ilyas-iMac:test sandye51$
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2012, 16:49     Вычисляемые константы
Еще ссылки по теме:

C++ Символьные константы
C++ Константы, переменные
C++ OpenGL. Передать в процедуру рисования Draw коэффициенты прямой, вычисляемые в другой процедуре
C++ Статическе константы
C++ Константы и C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6191 / 3443 / 421
Регистрация: 29.11.2010
Сообщений: 9,123
20.06.2012, 16:49     Вычисляемые константы #10
MinGW тоже "хавает" не константы как размер массива.
Yandex
Объявления
20.06.2012, 16:49     Вычисляемые константы
Ответ Создать тему
Опции темы

Текущее время: 01:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru