Форум: Форум C++Разное
Новые темы: 00
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как передать структуру в качестве параметра функции?
 
 автор: antf   (12.11.2009 в 20:29)   письмо автору
 
 

Здравствуйте. Этот пример что-то не работает:

#include <iostream.h>

int main()
{
  struct SomeStruct {
    int svar1;
    int svar2;
  };

  SomeStruct s1 = { 1, 2 }, s2;

  SomeStruct myfunc(SomeStruct a)
  {
    a.svar1 = 3;
    a.svar2 = 4;

    return a;
  }

  cout << s1.svar1 << "  " << s1.svar2 << endl;

  s1 = myfunc(s1);

  cout << s1.svar1 << "  " << s1.svar2 << endl;

  int k; cin >> k;

  return 0;
}


С++ Builder 6 пишет: Improper use of typedef 'SomeStruct'

А можно ли задать у функции, принимающей структуру в качестве параметра значение по умолчанию?

  Ответить  
 
 автор: cheops   (12.11.2009 в 22:51)   письмо автору
 
   для: antf   (12.11.2009 в 20:29)
 

Вы одну функцию в другой определяете - лучше вынести определение структуры, а myfunc() просто обязательно нужно вынести за пределы main()
#include <iostream.h>

struct SomeStruct {
  int svar1;
  int svar2;
};
SomeStruct myfunc(SomeStruct a)
{
  a.svar1 = 3;
  a.svar2 = 4;

  return a;
}

int main()
{

  SomeStruct s1 = { 1, 2 }, s2;


  cout << s1.svar1 << "  " << s1.svar2 << endl;

  s1 = myfunc(s1);

  cout << s1.svar1 << "  " << s1.svar2 << endl;

  int k; cin >> k;

  return 0;
}

  Ответить  
 
 автор: antf   (12.11.2009 в 22:54)   письмо автору
 
   для: cheops   (12.11.2009 в 22:51)
 

Понятно.

  Ответить  
 
 автор: antf   (12.11.2009 в 23:00)   письмо автору
 
   для: cheops   (12.11.2009 в 22:51)
 

Структуры часто используются в C++? Помню в Delphi записи (аналог структур в Object Pascal) мне ни разу не понадобились.

  Ответить  
 
 автор: cheops   (13.11.2009 в 11:40)   письмо автору
 
   для: antf   (12.11.2009 в 23:00)
 

Скорее в C - в C++ вместо них используются классы, причем очень интенсивно. Собственно struct и class - это в C++ практически одно и тоже, только, в struct все члены по умолчанию открыты (public), а в class - закрыты (private).

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования