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

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

Войти
Регистрация
Восстановить пароль
 
thick_int
Заблокирован
#1

Инициализация ссылок - C++

19.12.2011, 21:24. Просмотров 695. Ответов 4
Метки нет (Все метки)

Пусть T - это некоторый класс.
Хотелось бы знать, всегда ли такой код приемлем.

C++
1
2
3
4
5
6
7
8
extern int function1(T);
extern int function2(T&);
 
T classobj;
T& classref(classobj);
 
int b = function1(classobj);
int c = function2(classobj);
Или же для того, чтобы этот код был правильным в классе T должны быть реализованы определенные конструкторы.
Еще точнее:
1) Будет ли этот код верен, если в класе T отсуттвует конструктор по умолчанию?
2) Будет ли этот код верен, если в класе T отсуттвует конструктор копирования?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2011, 21:24     Инициализация ссылок
Посмотрите здесь:

Инициализация игры... C++
C++ Создание и инициализация
C++ Инициализация ссылок
Инициализация указателей C++
C++ инициализация векторов
C++ инициализация SDL
C++ Инициализация указателей
C++ Инициализация указателей
Инициализация массива C++ C++
Инициализация вектора C++
Инициализация C++
C++ Инициализация строки

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
19.12.2011, 21:31     Инициализация ссылок #2
thick_int, Что значит отсутствует смотря. Если он помещен в private и к нему нет доступа или же он объявлен как delete метод то передача по значению не пройдет.
Создание объекта T classobj - тоже не пройдет, если конструктор по умолчанию помещен в private или же с delete.
thick_int
Заблокирован
19.12.2011, 21:35  [ТС]     Инициализация ссылок #3
Нет ну разумеется пока все конструкторы считаютя публичными.
То есть в принципе такими, что если они есть то они таковы, что ими можно воспользоваться.
zss
Модератор
Эксперт С++
 Аватар для zss
6112 / 5715 / 1849
Регистрация: 18.12.2011
Сообщений: 14,600
Завершенные тесты: 1
19.12.2011, 21:39     Инициализация ссылок #4
Конструктор по умолчанию, и конструктор копирования
(если они не реализованы) компилятор создаст сам.
Но он это делает очень тупо.
Конструктор по умолчанию вообще ничего не делает.
Копиконструктор тупо копирует все данные.
Если это подходит, то можно и не реализовывать.
thick_int
Заблокирован
19.12.2011, 21:43  [ТС]     Инициализация ссылок #5
To zss2
Ну, не совсем у Вас все правильно, скорее это примитивный подход.
Но вопрос был из другой оперы.
Yandex
Объявления
19.12.2011, 21:43     Инициализация ссылок
Ответ Создать тему
Опции темы

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