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

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

Войти
Регистрация
Восстановить пароль
 
magomed6290
0 / 0 / 0
Регистрация: 18.11.2013
Сообщений: 11
#1

Можно ли определить const без ее инициализации и почему? - C++

18.03.2014, 16:11. Просмотров 419. Ответов 1
Метки нет (Все метки)

1.можно ли определить const без ее инициализации и почему??
2. почему без знаковые типы данных допускают увеличение диапозона предстовляемых или положительных значений??.

в инете не нашел ответов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2014, 16:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Можно ли определить const без ее инициализации и почему? (C++):

int const * const foo(const int* param) const - разъясните значение квалификаторов - C++
int const * const foo(const int* param) const -----1------2----------3----------------4 1: ? 2: делает содержимое массива или...

Почему в функцию можно передавать аргументы с амперсандом или без него и результат тот же самый? - C++
К примеру : int main() { int x=3, y=4; swap(&x,&y); return 0; } void swap(int* a, int* b){ int tmp = *a; *a...

Почему прога может зависать при инициализации массива - C++
Проект в VS2010 простое консольное приложение Есть массив string vesa_str; При его инициализации внутри функции прога зависает....

Почему при инициализации данных программа работает быстрей? - C++
Почему при инициализации данных программа работает быстрей?

Определить, можно ли из сторон составить треугольник (без конструкции ветвления) - C++
Здравствуйте, вновь обращаюсь за помощью на форум Определить, можно ли из сторон составить треугольник a, b и c, определить можно ли из...

Ошибка исполнения, переменная использована без инициализации - C++
Вот код не могу никак реализовать функцию int_date(), все время выдает ошибку. #include <iostream> using namespace std; class...

1
dalay_lama
77 / 77 / 16
Регистрация: 22.09.2012
Сообщений: 481
18.03.2014, 16:43 #2
1) const без инициализации объявить нельзя. const - означанет константа. Определение: константа - величина, значение которой не меняется; в этом она противоположна переменной. После объявления константы, её значение изменить нельзя(как например переменной), т.е. такое не прокатит:
C++
1
2
3
4
const int n;//здесь компилятор тебя пошлёт курить бамбук
//...
//далее где-то в программе сделать такую запись уже нельзя будет
n = 5;//фигушки!
поэтому нужно всегда её инициализировать при созданни, т.к. потом значение нельзя подставить. Незнаю даже как это ещё можно объяснить, элементарная вещь же. Как это можно было не найти в интернете?

2) возьмём на примере. Прикиним, что тип int занимает 32 бита. 2^32 это 4294967296. Т.е. 32-мя битами мы можем приставить 4294967296 чисел, но, т.к. нам ещё нужно представлять и отрицательные числа(знаковые), нужно это число разделить на 2(т.е. пополам, половину на отрицательные, половину на положительные) получаем: 2147483648. В итоге у нас получился такой промежуток чисел от -2147483648 до 2147483648 которое может представить переменная типа int. Соответственно, если мы возьмём беззнаковый тип(unsigned int), т.е. без учёта отрицательных чисел, эта часть чисел, которая приходилась на отрицательные, прибавляется к положительным и получается, что при беззнаковом типе можно представить число в двое большее.
Ну как-то так. Надеюсь получилось объяснить.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2014, 16:43
Привет! Вот еще темы с ответами:

Почему при инициализации строки, сначала создаётся пустой объект? - C++
Чтобы при создании присвоить строке какое-то значение, можно использовать два способа: string str1(”bla-bla-bla”); или string str2 =...

При инициализации массива в отладке не попадаю в обработчик, поясните почему? - C++
имеется два класса struct Integer { explicit Integer(int const &value) : value_(value) { } Integer() ...

Почему лучше инициализировать объекты класса во время инициализации конструктора? - C++
Имеется класс Rnd: class Rnd { public: Rnd::Rnd(int x); private: int val; };

В чём разница в конструкрукторе со списком инициализации и без оного - C++
объясните пожалуйста разницу между конструктором по умолчанию и конструктором по умолчанию. первая запись: Circle(float _x = 0.0,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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