Эквивалент с (из Паскаля) в C / C ++ - PullRequest
3 голосов
/ 22 июня 2011

Что эквивалентно with из языка Паскаль в языке Си / Си ++?

Оператор with - это сокращение для ссылки на поля записи или поля, свойства и методыобъект.

Пример

With (Object) do
begin
   Width:=200;
   Height:=300;
end;

Эквивалентно:

Object.Width=200;
Object.Height=200;

1 Ответ

4 голосов
/ 22 июня 2011

Я не верю, что существует какой-либо прямой эквивалент этого утверждения в c / c ++.

Если ваша цель состоит в том, чтобы избежать повторного ввода «Объекта», то, я полагаю, вы могли бы использовать ссылку, чтобы сопоставить ее с более коротким именем, например:

  ClassName& o = Object;
  o.prop1 = "meep";
  o.prop2 = "moop";

Но я бы лично использовал это только в тех случаях, когда «Объект» является сложным выражением. E.g.:

  ClassName& o = something.getSomeOtherThing().getSomeThirdThing();
  o.prop1 = "meep";
  o.prop2 = "moop";
...