С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
1 / 1 / 0
Регистрация: 11.12.2014
Сообщений: 116

Как обращаться к методу динамически созданного объекта?

24.03.2015, 23:44. Показов 1638. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Тоесть как правильно:
C++
1
2
3
4
5
6
7
string *str = new string();
 
*str->size();
 
// или
 
str->size();
И почему?

Добавлено через 7 минут
Ведь str указывает на адрес объекта, а *str на сам объект. Значит правильно *str->size(); . Или не так?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.03.2015, 23:44
Ответы с готовыми решениями:

Перемещение динамически созданного объекта
Суть задания в том чтобы сделать что то вроде калькулятора математической логики, но в виде схем. В интернете есть максимально приближенная...

Инициализатор не может обращаться к не статическому полу или методу объекта
PointF Arr = new PointF // Исходный массив точек { new PointF(10,150), new PointF(5,50), new PointF(150,50), new...

Удаление динамически созданного объекта
Код создания объекта: procedure TForm1.Book_Create(Sender: TObject); begin img := TImage.Create(ScrollBox1); img.Parent :=...

6
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
24.03.2015, 23:46
Лучший ответ Сообщение было отмечено pety как решение

Решение

Цитата Сообщение от pety Посмотреть сообщение
Значит правильно *str->size(); . Или не так?
не так.

C++
1
2
3
4
5
// по ссылке
(*str).size();
 
// по указателю
str->size();
1
1 / 1 / 0
Регистрация: 11.12.2014
Сообщений: 116
25.03.2015, 00:02  [ТС]
почему?

Добавлено через 10 минут
и почему такая страшная конструкция для обращения по ссылке? всегда работало str.size(); (у меня)
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
25.03.2015, 00:21
Цитата Сообщение от pety Посмотреть сообщение
всегда работало str.size(); (у меня)
я не телепат, и мне не очевидно что именно у вас там всегда работало.

могу лишь утверждать: чем бы оно ни было, но оно не было указателем:

C++
1
2
3
string *str = new string();
 
str.size(); //<--- это не будет работать
0
1 / 1 / 0
Регистрация: 11.12.2014
Сообщений: 116
25.03.2015, 00:39  [ТС]
вы правы, я перепутал.

а как обращаться к отдельному элементу строки, например
C++
1
2
3
4
string *str = new string("gyutyutrkir");
 
//так            или так?
str[4];          *str[4];
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
25.03.2015, 00:49
Цитата Сообщение от pety Посмотреть сообщение
а как обращаться к отдельному элементу строки, например
C++
1
(*str)[4];
форма записи:
C++
1
str[4]; // str - это указатель
предполагает, что указатель смотрит на массив элементов.
это синтаксический сахар, который позволяет обращаться с указателем так,
словно это - массив:

http://rextester.com/LSCX2454
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    std::cout << "Hello, world!\n";
    
    
    string ar[] = { "hello", "cyberforum" };
    
    string* p = ar;
    
    
    //выводим 1 элемент ("cyberforum")
    std::cout<< p[1]<<std::endl; 
    std::cout<< ar[1]<<std::endl;
}
1
1 / 1 / 0
Регистрация: 11.12.2014
Сообщений: 116
25.03.2015, 00:58  [ТС]
спасибо

написали и using namespace std, и std::cout и std::endl
Ведь не поленились
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.03.2015, 00:58
Помогаю со студенческими работами здесь

Возвращение из функции динамически созданного объекта
Доброго всем времени суток! Столкнулся с такой проблемой. Необходимо создать список, при этом использоваться список планируется внутри...

Drag and drop динамически созданного объекта
Есть объект: TMyObjects = class (TGraphicControl) property OnDragDrop; property OnDragOver; end; И несколько...

Узнать имя динамически созданного объекта
Проблема вот в чем: На форме размещен компонент CategoryPanelGroup В нем динамически созданы категории в цикле, а в этих...

Процедура для динамически созданного объекта
Всем привет! Проблема в следующем: динамически создаю кнопки и записываю их в массив через цикл for i:x to y do begin ...

Как в Yii в поведениях обращаться к статическому методу?
Здравия! К обычным методам класса в поведении обращался так.. $this-&gt;method(); А как к статическому обращаться? Типа:


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru