Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Xentar
Of Wolf and Man
993 / 188 / 4
Регистрация: 09.07.2008
Сообщений: 1,885
#1

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

13.11.2008, 11:47. Просмотров 897. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Есть ли оператор, аналогичный with? (C++):

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

Есть ли оператор % для double ? - C++
Для double переменных не работает оператор %. Как можно провернуть эту операцию для double ?

Оператор new (создать класс город у которого есть название и население) - C++
Была задачка, создать класс город у которого есть название и население. Определить функцию которая устанавливает название Москва и...

Стоит ли использовать тернарный оператор, если всегда есть альтернативы в С ? - C++
Мне вот интересно , что скажут люди о Тернарном операторе, которые уже на С++ программируют немало. Насколько он удобен, много ли...

Пустой оператор есть во всех функциях и методах классов: кто против? - C++
while{1} ;

3D проект, аналогичный Flash - C++
Здравствуйте, Можно ли создать такой проект на С++: http://www.rmg.com/ru/produkty.html Если можно, поделитесь своими мнениями об...

9
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
13.11.2008, 11:58 #2
Нет.
0
Inlight
43 / 42 / 2
Регистрация: 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
993 / 188 / 4
Регистрация: 09.07.2008
Сообщений: 1,885
13.11.2008, 15:17  [ТС] #4
Если большая структура - с большим количеством полей, в паскале можно было просто написать
Код
with [struct] do begin
  поле1 (присваивание обработка)
  поле2(присваивание обработка)
  поле3 (присваивание обработка)
  поле4 (присваивание обработка)
  поле5 (присваивание обработка)
  ...
  поле100 (присваивание обработка)
end;
А в твоем случае придется 100 раз писать имя структуры (а если имя длинное ?)
Вот я к чему.

ЗЫЖ: а как исходник будет выглядеть - я знаю
0
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
13.11.2008, 15:18 #5
Если имя длинное то, Ctrl-P, Ctrl-N , ну это в vim.
0
Xentar
Of Wolf and Man
993 / 188 / 4
Регистрация: 09.07.2008
Сообщений: 1,885
13.11.2008, 15:21  [ТС] #6
Ctrl-C, Ctrl-V - это виндоз.
0
Inlight
43 / 42 / 2
Регистрация: 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
993 / 188 / 4
Регистрация: 09.07.2008
Сообщений: 1,885
13.11.2008, 15:41  [ТС] #8
Inlight,ты видимо никак не поймешь.
Даже в этом, твоем, случае - тебе придется заполнять все поля структуры.
Оператор WITH был сделан для удобства программиста, чтоб при обращении к полям структуры не писать каждый раз имя этой структуры, если полей у данной структуры много.
А в твоем листинге ты мне приводишь что то типа динамического списка. (извини если ошибся, я не до конца понял что ты на С написал, я еще не дошел до указателей. мне они всегда трудно давались.)
0
mik-a-el
Администратор
67831 / 37852 / 231
Регистрация: 10.04.2006
Сообщений: 12,818
13.11.2008, 15:52 #9
Цитата Сообщение от Xentar Посмотреть сообщение
Оператор WITH был сделан для удобства программиста, чтоб при обращении к полям структуры не писать каждый раз имя этой структуры, если полей у данной структуры много.
А что, таких случаев много? Сколько ни кодил на паскале и делфях, этот оператор пригодился считанное количество раз.
По-моему, Xentar разводит бурю в стакане воды
0
Xentar
Of Wolf and Man
993 / 188 / 4
Регистрация: 09.07.2008
Сообщений: 1,885
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
Привет! Вот еще темы с ответами:

Ассемблерная вставка и аналогичный код на С++ (массив) - C++
Начали изучать на заочке ассемблер (до С++ ещё не дошли), лекций не было, сразу практика. Простенькую программку на подсчет формулы сделал,...

Условный оператор (определить есть ли во втором символе строки символ "-") - C++
Народ выручите! вот такой код. выдаёт ошибки. как определить есть ли во втором символе строки символ &quot;-&quot;??? #include &lt;iostream&gt; ...

на С++ получить результат аналогичный команде start %1 в cmd - C++
на С++ получить такой же результат как после работы скрипта на cmd (файл 1.cmd): @echo off start &quot;&quot; %1 exit Т.е. если...

Подскажите причину ошибки во фрагменте, аналогичный которому выше выполняется нормально - C++
Проблема в строке 116. Вместо if (kursor==milkis||(kursor==milkis)) должно быть if (kursor==milkis||(kursor==milkis)) но в таком...


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

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

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