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

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

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

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

19.12.2011, 21:24. Просмотров 731. Ответов 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++
Непонятно почему такой синтаксис инициализации ссылок ошибочен: int * p(nullptr); int * &pref(p); Требуется вот так: int *...

Создание и инициализация - C++
Добрый вечер, я как всегда с нетривиальными вопросами :) допустим есть объект class myclass { int i; public: ...

Инициализация vector - C++
При создание вектора, пытаюсь сразу задать начальные значения: std::vector<int> c{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; но компилятор (MinGW...

Инициализация матрицы - C++
Здравствуйте. В 9 строчке где только }; написано выдается ошибка: variable-sized object 'matr' may not be initialized. Что может быть не...

Инициализация по стандарту C++11 - C++
Здравствуйте ув. форумчане. Читаю Прата С. Язык программирования С++ Лекции и упражнения 2012. В разделе "Инициализация в C++11",...

Инициализация в структуре - C++
const int len=30; const int size=5; struct stud { char name= "Olga Mironova", "Mihail Mihailov", "Vladimir...

Ленивая инициализация! - C++
Объясните пожалуйста реальный пример применения ленивой инициализации.Можно с листингом простой программы.

Инициализация в private - C++
Объясните пожалуйста в чем собственно заключается ошибка и как ее исправить. Зарание спасибо class Menu{ private: ...

инициализация указателя - C++
class Item { public: Item() { num0=new char("как");//ошибка cannot convert from 'const char ' to 'char' num1=new...

Инициализация дерева - C++
Добрый день. пытаюсь писать небольшое бинарное дерево. вот что получилось #include <stdio.h> #include <stdlib.h> #include...


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

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

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