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

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

Войти
Регистрация
Восстановить пароль
 
Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
#1

В чём разница? - C++

01.01.2014, 13:19. Просмотров 317. Ответов 2
Метки нет (Все метки)

Здрасьте.
Здесь представлены два способа присвоения переменной A значения 10.
Через конструктор:

C++
1
2
3
4
5
6
7
8
9
10
11
12
class random
{
  public:
  random(int a){A=a;}
  ~random(){}
  private:
  int A;
};
int main()
{
random first(10);
}

И через метод доступа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
class random
{
  public:
  void Setrandom(int a){A=a;}
  private:
  int A;
};
int main()
{
random first;
first.Setrandom(10);
}
Вопрос в том,зачем нужен конструктор,если работать с закрытыми переменными можно и через методы доступа?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.01.2014, 13:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В чём разница? (C++):

C++ и C. В чём разница? - C++
Всем доброго времени суток. Недавно разбирал сортировки в с++. Написал быструю и слияние. Вроде бы работает нормально. Спустя некоторое...

(char)xx и '\xx' - в чём разница? - C++
День добрый. Просто любопытно, почему cout << (char)число; и cout << '\число'; часто дают разный результат?

Объясните, в чём разница - C++
int u = 6 int *p = &u или int *p p = &u В чём тут разница? Тема: Указатели.

В чём разница между заголовками <c***> и <***.h>? - C++
Пробовал несколько несложных примеров применения обоих вариантов. Результат выполнения идентичен. Компилятор никаких предупреждений не...

Не объясните в чём разница между случаями - C++
Привет! Тут вот небольшой вопросик по поводу. Читаю книжку Страуструпа нашего и возник вопросик. ...

В чём разница между процедурами и функциями ? - C++
Мне просто нужно будет выполнить одну и ту же операцию несколько раз, а сама операция включает в себя несколько вычислений , создание...

2
Croessmah
Эксперт CЭксперт С++
13513 / 7671 / 866
Регистрация: 27.09.2012
Сообщений: 18,873
Записей в блоге: 3
Завершенные тесты: 1
01.01.2014, 13:23 #2
Цитата Сообщение от Игорюня Посмотреть сообщение
Вопрос в том,зачем нужен конструктор,если работать с закрытыми переменными можно и через методы доступа?
А Вы уверены, что всегда будете помнить о том, что после
C++
1
random first;
нужно будет обязательно вызвать все необходимые функции-члены класса?
А уверены ли Вы в том, что те, кто будет пользоваться вашим классом будут заботиться о вызове всех инициализирующих функций?
А если у Вас в классе 100 переменных, для всех делать функции доступа? А если некоторые из переменных должны быть вовсе не доступны пользователю класса?
А константы так Вы инициализируете?
А ссылки вручную считать?
Тогда получается почти Си
1
MrGluck
Модератор
Эксперт CЭксперт С++
7420 / 4535 / 673
Регистрация: 29.11.2010
Сообщений: 12,313
02.01.2014, 03:20 #3
Лучше всего - третий способ, используя список инициализации конструктора
C++
1
random(int a) : A(a){}
Добавлено через 1 минуту
Так объекты будут созданы с уже заданными значениями, а не сначала созданы, потом проинициализированы. (Сейчас не берем во внимание отладчик в конкретном примере, думаем о не POD типах).
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2014, 03:20
Привет! Вот еще темы с ответами:

В чём разница между string и символьными массивами? - C++
Собсна какая тема, такой и вопрос. Если выразить его по-точнее, то в чём существенные плюсы того и другого в разных ситуациях? Изучаю С++...

В чём разница между динамической и статической линковкой библиотеки? - C++
В чём разница между динамической и статической линковкой библиотеки? Если можно с примером.

Односвязный список: В чём разница между struct и class? - C++
После неудач работы с Vector, а так же отсутствия (Хотя, скорее всего, я просто плохо искал) хорошей русской документации по нему, решил...

В чём разница между состояниями потока failbit и badbit? - C++
В чём разница между failbit и badbit? Если просто просматривать ошибку ввода в моём случае, то он всегда пишет failbit (в цикле вайл при...


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

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

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