44 / 44 / 17
Регистрация: 13.09.2012
Сообщений: 196
|
||||||
1 | ||||||
Создать безымянный объекта класса string27.10.2012, 17:28. Показов 3549. Ответов 17
Метки нет (Все метки)
97|error: declaration of 'std::string str' shadows a parameter| ||=== Build finished: 1 errors, 1 warnings ===| Не понимаю почему создаю безыменнянный объект класса, что ж он ругается?
0
|
27.10.2012, 17:28 | |
Ответы с готовыми решениями:
17
Определить класс Triangle, разработав следующие элементы класса. Поля: - double a, b, c; - string name; //имя объекта Вызвать процедуру\функцию из другого объекта\класса. Из одного класса\объекта сделать два Не могу создать переменную класса string Создать событие для объекта класса |
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
27.10.2012, 17:38 | 2 |
А что, безымянные переменные других типов вам удаётся создавать?
0
|
44 / 44 / 17
Регистрация: 13.09.2012
Сообщений: 196
|
|
27.10.2012, 17:40 [ТС] | 3 |
Проверил на своем классе, действительно нельзя?
А почему так было сделано? Почему запрещено?
0
|
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
27.10.2012, 17:44 | 5 |
Я просто не понимаю, накой это делать. Тем более, что это не переменная, а временный объект. Который ещё и не используется.
А вообще enjoy your C++. Вы напоролись на одни из граблей его контекстно-зависимого синтаксиса. string(str); ≡ string (str); ≡ string str; Итого получается, что вы хотите в той же области видимости создать одноимённую переменную.
0
|
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
|
||||||
27.10.2012, 17:54 | 6 | |||||
1
|
44 / 44 / 17
Регистрация: 13.09.2012
Сообщений: 196
|
|
28.10.2012, 09:04 [ТС] | 7 |
Петррр, а почему работает?
0
|
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
|
|
28.10.2012, 09:08 | 8 |
kotleta, не знаю.
0
|
26 / 26 / 3
Регистрация: 20.09.2011
Сообщений: 68
|
||||||
28.10.2012, 10:04 | 9 | |||||
[QUOTE=kotleta;3617269]
1
|
44 / 44 / 17
Регистрация: 13.09.2012
Сообщений: 196
|
||||||
28.10.2012, 10:53 [ТС] | 10 | |||||
kertio, какой еще адрес?
нельзя присваивать адрес конструктора Добавлено через 3 минуты неправильно написал
Добавлено через 5 минут ~OhMyGodSoLong~ А безымянный объекта ВООБЩЕ никогда нельзя создавать, или есть случаи где можно?
0
|
26 / 26 / 3
Регистрация: 20.09.2011
Сообщений: 68
|
||||||
28.10.2012, 11:22 | 11 | |||||
а что я сделал в строке (void)stding(str)? создал безымянный объект к которому ты не сможешь обратиться. в данному случае в этой операции нет смысла. временный или безымянный объект ты можешь например передать в функцию:
Про врисваивание адреса конструктора там и слова нигде нет. а вот адрес созданного объекта - это уже другое.
1
|
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
28.10.2012, 13:19 | 12 |
Не, просто для string это как-то бессмысленно. Вон уже сказали один вариант: временный объект для передачи в функцию. Ещё варианты: всякие цепочки вызовов через точечку вроде vector = filter(vector, f_filter().in(10, 50).mod(3, 0)) и т. д.
Они много где создаются. Но всегда в составе какого-то выражения, а не сами по себе. Хотя сами по себе тоже (в принципе) могут быть полезны, но это если в их конструкторе есть какие-то побочные эффекты, что не совсем хорошо с архитектурной точки зрения.
1
|
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
28.10.2012, 15:03 | 13 |
Ну, допустим, std::lock_guard. Если даже создать небезымянный нагляднее, всё равно обращений по имени к нему не будет.
0
|
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
28.10.2012, 15:34 | 15 |
Да, что-то я ступил...
0
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
28.10.2012, 15:56 | 16 |
Ну смотря как объект создавался. Ведь оператором new тоже создаются по сути безымянные объекты.
0
|
28.10.2012, 16:08 | 17 | |||||
Toshkarik, я говорил про стек. Но, конечно, мы можем сделать через new
0
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
28.10.2012, 16:11 | 18 |
0
|
28.10.2012, 16:11 | |
28.10.2012, 16:11 | |
Помогаю со студенческими работами здесь
18
VB6 Создать событие для объекта класса Создать приложение «Изменение свойств объекта класса» Как создать копию объекта любого класса? String, как создать глобальный массив из экземпляров этого класса? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |