Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Xentar
Of Wolf and Man
994 / 190 / 5
Регистрация: 09.07.2008
Сообщений: 1,784
1

Есть ли оператор, аналогичный with?

13.11.2008, 11:47. Просмотров 933. Ответов 9
Метки нет (Все метки)

Соббстно сабж.

В делфи это выглядит примерно так:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
type             
  stud = record   //задаем новый тип struct
    FIO:string;     // делаем поля ФИО и возраст
    age:byte;
  end;
 
var student:stud;   //создаем переменную нашего типа
 
begin
 
  with student do begin  //здесь мы указываем что работаем со структурой студент
    FIO:='asdlfkajsfa';     // поэтому все остальные переменные мы вводим
    age:=11;                 // без указания структуры ( student.age :=11)
  end;   //заканчиваем работать со структурой студент
 
  writeln(student.FIO); // закончили работать со структурой студент
  writeln(student.age); // поэтому при выводе обязательно перед переменной
                       // надо указать переменную структуры.
end.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2008, 11:47
Ответы с готовыми решениями:

В Delphi есть оператор cost i of. и т.д. Есть ли в C++ такой же оператор?
(C++ Builder XE5)

Есть ли в Google сервис, аналогичный wordstat.yandex.ru?
Собственно, сабж... Аналогично http://wordstat.yandex.ru можно то же самое посмотреть где-то в...

Есть ли у ArrayList метод Dequeue или аналогичный?
раньше юзал Queue<string> List = new Queue<string>(); Из-за функции List.Dequeue(); Но теперь...

Есть ли метод выбора директорий в VBA WORD аналогичный Commondialog
Доброго времени суток, возник вопросик. Есть ли метод выбора директорий в VBA WORD аналогичный...

Зачем нужен оператор while (именно while, а не do-while), когда есть оператор for?
Четкий и понятный ответ в литературе и на других web ресурсах не найден, поэтому вопрос к знатокам:...

9
Vourhey
Почетный модератор
6496 / 2271 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
13.11.2008, 11:58 2
Нет.
0
Inlight
43 / 42 / 15
Регистрация: 17.09.2008
Сообщений: 98
13.11.2008, 14:07 3
На С++ твой исходник будет выглядеть так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <conio.h>
#include <string>
 
using namespace std;
 
struct stud {
    string FIO;
    short age;
};
 
int main ()
{  
    stud student;
    student.FIO = "asdlfkajsfa";
    student.age = 11;
    cout << student.FIO << endl;
    cout << student.age << endl;
    getchar();
    return 0;
}
with, как видишь, не нужен.
0
Xentar
Of Wolf and Man
994 / 190 / 5
Регистрация: 09.07.2008
Сообщений: 1,784
13.11.2008, 15:17  [ТС] 4
Если большая структура - с большим количеством полей, в паскале можно было просто написать
Код
with [struct] do begin
  поле1 (присваивание обработка)
  поле2(присваивание обработка)
  поле3 (присваивание обработка)
  поле4 (присваивание обработка)
  поле5 (присваивание обработка)
  ...
  поле100 (присваивание обработка)
end;
А в твоем случае придется 100 раз писать имя структуры (а если имя длинное ?)
Вот я к чему.

ЗЫЖ: а как исходник будет выглядеть - я знаю
0
Vourhey
Почетный модератор
6496 / 2271 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
13.11.2008, 15:18 5
Если имя длинное то, Ctrl-P, Ctrl-N , ну это в vim.
0
Xentar
Of Wolf and Man
994 / 190 / 5
Регистрация: 09.07.2008
Сообщений: 1,784
13.11.2008, 15:21  [ТС] 6
Ctrl-C, Ctrl-V - это виндоз.
0
Inlight
43 / 42 / 15
Регистрация: 17.09.2008
Сообщений: 98
13.11.2008, 15:35 7
Ctrl-C, Ctrl-V - это виндоз.
Если имена повторяются, то можно так:
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
#include <iostream>
#include <conio.h>
#include <string>
 
using namespace std;
 
struct stud {
    string FIO;
    short age;
};
 
int main ()
{  
    stud* student;
    for (int i=0; i<100; i++) {
        stud* student = new stud;
        student->FIO = "asdlfkajsfa";
        student->age = 11;
        cout << student->FIO << endl;
        cout << student->age << endl;
    }
    getchar();
    return 0;
}
Если нет, то можно сделать список имен и заполнять через switch.
0
Xentar
Of Wolf and Man
994 / 190 / 5
Регистрация: 09.07.2008
Сообщений: 1,784
13.11.2008, 15:41  [ТС] 8
Inlight,ты видимо никак не поймешь.
Даже в этом, твоем, случае - тебе придется заполнять все поля структуры.
Оператор WITH был сделан для удобства программиста, чтоб при обращении к полям структуры не писать каждый раз имя этой структуры, если полей у данной структуры много.
А в твоем листинге ты мне приводишь что то типа динамического списка. (извини если ошибся, я не до конца понял что ты на С написал, я еще не дошел до указателей. мне они всегда трудно давались.)
0
mik-a-el
Администратор
73774 / 42900 / 243
Регистрация: 10.04.2006
Сообщений: 12,833
13.11.2008, 15:52 9
Цитата Сообщение от Xentar Посмотреть сообщение
Оператор WITH был сделан для удобства программиста, чтоб при обращении к полям структуры не писать каждый раз имя этой структуры, если полей у данной структуры много.
А что, таких случаев много? Сколько ни кодил на паскале и делфях, этот оператор пригодился считанное количество раз.
По-моему, Xentar разводит бурю в стакане воды
0
Xentar
Of Wolf and Man
994 / 190 / 5
Регистрация: 09.07.2008
Сообщений: 1,784
13.11.2008, 15:56  [ТС] 10
По-моему, Xentar разводит бурю в стакане воды
Буря в стакане - это поДЖЕДАЙСКИЙ

Вообще просто Inlight - неправильно понял вопрос.
Я то на него ответ уже нашел
0
13.11.2008, 15:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2008, 15:56

Есть ли в Python оператор выбора?
Как сделать нечто подобное? #include &lt;iostream&gt; #include &lt;clocale&gt; using namespace std; ...

Условный оператор IF, есть ошибки
Решила задачу, условие следующее: План выпуска сливочного масла составляет 2.7 т/смену. На...

Есть ли оператор Select case
Доброго времени суток! Ребят, есть в паскале такой оператор? Задание дали написать прогу через этот...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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