Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
2 / 2 / 1
Регистрация: 19.09.2015
Сообщений: 121

Аналог паскалевского оператора with.do в C++?

26.08.2016, 19:58. Показов 1360. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно весь вопрос в заголовке темы. Существует ли аналог упомянутого оператора в C++?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.08.2016, 19:58
Ответы с готовыми решениями:

Оператор сокращения, аналог паскалевского With
Есть ли в c# аланлог паскалевского with?? для сокращения записей например в паскале можно сокращать записи примерно так: with...

Аналог паскалевского downto (обратный цикл do), как реализовать?
for m:=n downto 1 do begin for i:=m-1 downto 1 do begin p:=a; for j:=1 to n do begin a:=a-a*p; ...

C++ Аналог оператора With
Подскажите пожалуйста, как представить этот код из Delphi в C++ With Canvas do begin

6
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
26.08.2016, 21:10
C++
1
2
3
4
5
do
{
код
}
while(условие);
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
26.08.2016, 21:17
Bretbas, Вы бы хоть почитали сначала что такое with do.
Это будет что-то вроде
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct T
{
   int x;
   int y;
   int z;
};
//...
T obj;
//...
with obj do
{
   x = 10;//эквивалентно obj.x
   y = 20;//эквивалентно obj.y
   z = 30;//эквивалентно obj.z
}
Mendel, в c++ такого нет.
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
26.08.2016, 21:44
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
в c++ такого нет.
ну можно вот так сделать для соращения имени которое писать:
C++
1
2
3
4
auto &n=obj.subobj1.subobj2;
n.x=10;
n.y=20;
n.z=30
Но более имя не сократить. доступ к полям не из скопа метода объекта всегда через явное указание объекта.
1
694 / 304 / 99
Регистрация: 04.07.2014
Сообщений: 851
26.08.2016, 23:07
Отсутствие необходимости такой конструкции можно посмотреть на следующем примере:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdint.h>
#include <memory>
#include <iostream>
 
class Foo {
  uint32_t x_;
 
public:
  Foo(uint32_t x)
      : x_(x){};
 
  void test() const
  {
    std::cout << x_ << std::endl;
  };
};
 
class Bar {
  std::shared_ptr<Foo> foo_;
 
public:
  Bar(uint32_t x)
      : foo_(std::make_shared<Foo>(x)){};
 
  std::shared_ptr<Foo> getFoo()
  {
    return foo_;
  };
};
 
class Baz {
  std::shared_ptr<Bar> bar_;
 
public:
  Baz(uint32_t x)
      : bar_(std::make_shared<Bar>(x)){};
 
  std::shared_ptr<Bar> getBar()
  {
    return bar_;
  };
};
 
int main()
{
  auto baz = std::make_shared<Baz>(10);
  baz->getBar()->getFoo()->test();
  baz->getBar()->getFoo()->test();
  baz->getBar()->getFoo()->test();
 
  auto foo = baz->getBar()->getFoo();
  foo->test();
  foo->test();
  foo->test();
}
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
27.08.2016, 00:23
Цитата Сообщение от Mendel Посмотреть сообщение
Собственно весь вопрос в заголовке темы. Существует ли аналог упомянутого оператора в C++?
Есть указатели и ссылки.

Добавлено через 2 минуты

Не по теме:

AlexVRud, Паскалевский with в отличии от Питоновского не обеспечивает освобождение ресурса, там просто "сокращение записи".

0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
27.08.2016, 10:02
C++
1
2
3
4
5
6
7
8
9
struct T
{
   int x;
   int y;
   int z;
} obj
{
   10, 20, 30
};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.08.2016, 10:02
Помогаю со студенческими работами здесь

Аналог оператора as
Всем привет. Не могли бы подсказать как перевести код с C# var vrr = (Activator.CreateInstance(type) as Class); никак не могу найти...

Нужен аналог оператора if
На vbstreet года два назад встречал в форуме такую весЧ: Аналог команды IF, только она непроверяла следующие условия если предидущее не...

Аналог оператора 'in' в других языках
Господа небольшой вопрос, в шарпе есть contains, который в принципе является аналогом in, но contains это метод, его нельзя вызывать без...

Если в C++ аналог оператора with в Pascal?
Если в C++ аналог оператора with в Pascal?

Аналог перегрузки оператора индексирования (operator [])
Как по-другому(то есть в виде обычной функции или как то ещё) можно записать перегрузку оператора индексирования? Например в моём случае:...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru