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

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

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

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

19.12.2011, 21:24. Просмотров 752. Ответов 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 отсуттвует конструктор копирования?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2011, 21:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Инициализация ссылок (C++):

Инициализация ссылок - C++
Непонятно почему такой синтаксис инициализации ссылок ошибочен: int * p(nullptr); int * &pref(p); Требуется вот так: int *...

Инициализация - C++
1. Создать класс Solid 2. Его наследует Planet 3. В функции Gravitation используются объекты Solid Это все .h и .cpp библиотеки 4....

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

Инициализация в блоке if - C++
Всем привет. if ((auto pointPos = wcsrchr(buffer, L'.')) != nullptr) *pointPos = '\0'; Есть код с ошибкой "expected an...

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

Инициализация указателей - C++
Добрый вечер, объясните пожалуйста, что значит присвоение начальных значений указателям, как например в данном случае: float *fPtr =...

4
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
19.12.2011, 21:31 #2
thick_int, Что значит отсутствует смотря. Если он помещен в private и к нему нет доступа или же он объявлен как delete метод то передача по значению не пройдет.
Создание объекта T classobj - тоже не пройдет, если конструктор по умолчанию помещен в private или же с delete.
0
thick_int
Заблокирован
19.12.2011, 21:35  [ТС] #3
Нет ну разумеется пока все конструкторы считаютя публичными.
То есть в принципе такими, что если они есть то они таковы, что ими можно воспользоваться.
0
zss
Модератор
Эксперт С++
6403 / 5969 / 1945
Регистрация: 18.12.2011
Сообщений: 15,377
Завершенные тесты: 1
19.12.2011, 21:39 #4
Конструктор по умолчанию, и конструктор копирования
(если они не реализованы) компилятор создаст сам.
Но он это делает очень тупо.
Конструктор по умолчанию вообще ничего не делает.
Копиконструктор тупо копирует все данные.
Если это подходит, то можно и не реализовывать.
0
thick_int
Заблокирован
19.12.2011, 21:43  [ТС] #5
To zss2
Ну, не совсем у Вас все правильно, скорее это примитивный подход.
Но вопрос был из другой оперы.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2011, 21:43
Привет! Вот еще темы с ответами:

Инициализация массива - C++
int ** mas, n; cout << "Введите порядок треугольника паскаля: " << endl; cin >> n; mas = new int * ; for (int i = 0; i < n;...

Инициализация переменной - C++
Приветствую уважаемые пользователи cyberforum! У меня появился вопрос по инициализации переменной с типом int Почему нельзя сделать вот...

Инициализация массива C++ - C++
Почему, если мы не инициализируем переменную, то при попытке работы с ней будет ошибка int main(){ char x; cout << x; ...

Инициализация вектора - C++
у меня в классе есть vector из string (константный, просто строки нужны как образец для других функций), в конструкторе соответственно надо...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
19.12.2011, 21:43
Ответ Создать тему
Опции темы

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