Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2009, 11:42   #1
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию Заполнение и вывод переменной нового класса или же структуру

В delphi идёт обращение через предка через точку.

record[2].member:="one";

Как это на си?


Вот что надо получить.
Запись человек, с именем и возрастом.
Код:
class zelovek

{ 
   ShortString member; // Элемент данных
   int vozrast; //  Элемент данных
   void show_zelovek(int);
};

zelovek *r=new zelovek;

   zelovek one, two;
   strcpy(one.member, "John Doe");
   one.vozrast = 19;
   strcpy(two.member, "Max Doe");
   two.vozrast = 21;
   one.show_zelovek();
   two.show_zelovek();
Alar вне форума Ответить с цитированием
Старый 09.02.2009, 11:57   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

one::show_zelovek();
или
one->show_zelovek();

Это насколько я помню.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.02.2009, 12:00   #3
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Stilet, так ошибка на этапе заполнения

Код:
strcpy(one.member, "John Doe");
one.vozrast = 19;
Alar вне форума Ответить с цитированием
Старый 09.02.2009, 12:09   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Мож им нужно обьявить
public int vozrast;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.02.2009, 12:12   #5
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Мож им нужно обьявить
public int vozrast;

Код:
class zelovek

{ 
  public ShortString member; // Элемент данных
  public int vozrast; //  Элемент данных
   void show_zelovek(int);
};
здесь?

не помогает

ошибка - expected after public
Alar вне форума Ответить с цитированием
Старый 09.02.2009, 12:25   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

мда... старею... Подзабыл уж

Вот тут пример есть
http://lib.ru/CPPHB/cpptut.txt

Цитата:
class complex
{
double re, im;
public:
complex(double r, double i) { re=r; im=i; }
complex(double r) // преобразование float->complex
{ re=r; im=0; }
friend complex operator+(complex, complex);
friend complex operator-(complex, complex); // вычитание
friend complex operator-(complex) // унарный минус
friend complex operator*(complex, complex);
friend complex operator/(complex, complex);
// ...
};
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.02.2009, 12:37   #7
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Как все сложно, а по простому подобно такой структуре -
Код:
record[2].member:="one";
обращения никак нельзя?
Alar вне форума Ответить с цитированием
Старый 09.02.2009, 12:44   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как все сложно
Не так уж и сложно. Просто привыкнуть нуна

Цитата:
обращения никак нельзя?
обьяви их public и обращайся по именам полей
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.02.2009, 12:47   #9
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Stilet, филосовский вопрос - если подумать головой, то зачем что-то дополнительно объявлять, если создан новый класс, для публичного использования. внутреннее использование невозможно, ибо это не функция
Alar вне форума Ответить с цитированием
Старый 09.02.2009, 13:07   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
внутреннее использование невозможно, ибо это не функция
Ты считаеш что private элементы вообще бессмысленны?

p.s. я в целом нелюблю ООП, но не такое уж оно и плохое, как сказал князь киевский в мультике про Добрыню "А если вот сбоку смотреть и глаз прикрыть то не такой уж и кривой "

Кстати, в Делфи тоже самое, просто умная рограмма сама за тебя прописывает шаблонно очень многое.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение переменной класса HunterMan Общие вопросы .NET 4 30.11.2008 06:50
Вывод в edit текста с переменной NecroSlider Общие вопросы C/C++ 4 29.07.2008 14:42
Работа с файлами (создание, удаление, открытие, связываение с переменной, очищение памяти переменной) Arkuz Общие вопросы Delphi 12 25.09.2007 20:47
Создание нового класса на базе существующего SpiritSm Общие вопросы Delphi 1 19.07.2007 10:11
Создание нового класса на базе существующего SpiritSm Помощь студентам 1 19.07.2007 01:05