0 / 0 / 0
Регистрация: 04.09.2011
Сообщений: 106
1

Правильно ли построен класс

09.09.2011, 00:17. Показов 2747. Ответов 45
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
STRUCT.cpp
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
25
26
27
#include "STRUCT.h"
 
 STRUCT::STRUCT()
{
 clrscr();
 printf(" Введите количество спортсменов: ");
 scanf("%d", &count); //Ввод количества участников
 min = init_athletes(all, count);
 printf("\n Самый юный участник:\nМесто в реестре: %d\nФамилия: %s\nИмя: %s\nВозраст:"  
 "%d\n\Bремя: %d min. %d sec.", min + 1, all[min].name, all[min].f_name, all[min].age,
 all[min].time.min, all[min].time.sec);
 getch();
}
 
 int STRUCT::init_athletes(athlete*& all, int count)
{int i, min = 0;
 all = new athlete[count]; //массив данных типа структура
 printf(" Введите данные для каждого спортсмена:\r\n");
 for(i = 0; i < count; ++i)
   {printf("%d. ", i + 1); //Порядковый номер записи спортсмена
    scanf("%s %s %d %d %d", &all[i].name, &all[i].f_name, &all[i].age,
      &all[i].time.min, &all[i].time.sec);
    if (i == 0) min = i;
    else if (all[i].age < all[min].age) min = i;
   }
 return min;
}
STRUCT.h
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
25
26
27
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
 
class STRUCT
{typedef struct 
   {
    int min; //минуты
    int sec; //секунды
   }time;
 
 typedef struct
   {
    char name[20]; //имя
    char f_name[20]; //фамилия
    int age; //возраст
    time time; //результат
   }athlete;
   
 int count = 0;
 int min = 0;
 athlete* all = NULL;
 
 public:
    STRUCT();
    int init_athletes(athlete*& all, int count)
}
0
09.09.2011, 00:17
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.09.2011, 00:17
Ответы с готовыми решениями:

Ошибка в выводе данных, класс выводит правильно, а класс в классе - нет
Неизвестная для меня проблема. Класс выводит данные правильно из Consigment, а вот третий экземпляр класса, работает не верно, если...

Правильно ли построен график БПФ?
Ребят, вопрос состоит в следующем: мне нужно понять, правильный ли у меня получился график. Что я делал: re=A*cos(i) im=A*sin(i) ...

Не оптимально построен класс?
И снова здравствуйте. У меня есть класс где загружаются текстуры травы различные. class Terran_class: global x global y ...

45
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
09.09.2011, 02:52 2
Цитата Сообщение от maxim43k Посмотреть сообщение
Правильно ли построен класс
неправильно

синтаксические ошибки:
Цитата Сообщение от maxim43k Посмотреть сообщение
int count = 0;
int min = 0;
athlete* all = NULL;
инициализация не статических константных полей в теле класса, запрещена

Цитата Сообщение от maxim43k Посмотреть сообщение
public:
STRUCT();
int init_athletes(athlete*& all, int count)
}
отсутствует точка с запятой после фигурной скобки

логические:
отсутсвует конструктор копирования
отсутсвует оператор присваивания
1
0 / 0 / 0
Регистрация: 04.09.2011
Сообщений: 106
09.09.2011, 02:55  [ТС] 3
А как правильно?
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
09.09.2011, 02:59 4
Цитата Сообщение от maxim43k Посмотреть сообщение
А как правильно?
книжку открой по С++, семестр только начался
0
0 / 0 / 0
Регистрация: 04.09.2011
Сообщений: 106
09.09.2011, 03:32  [ТС] 5
Не смешно, передо мной лежит четыре книжке, но там написано мягко говоря не очень понятно. Я не сплю несколько суток, не ем почти, всё из-за каких-то 3 программочек. Мозги расплавились. Я вообще уже ничего не соображаю. Не получается у меня в класс преобразовать.

Добавлено через 26 минут
STRUCT.cpp
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
25
26
27
28
29
30
31
32
33
#include "STRUCT.h"
 
 STRUCT::STRUCT()
{
   int count = 0;
   int min = 0;
   athlete* all = NULL;
   clrscr();
 
   printf(" Введите количество спортсменов: ");
   scanf("%d", &count); //Ввод количества участников
   min = init_athletes(all, count);
   printf("\n Самый юный участник:\nМесто в реестре: %d\nФамилия: %s\nИмя: %s\nВозраст:"  
   "%d\n\Bремя: %d min. %d sec.", min + 1, all[min].name, all[min].f_name, all[min].age,
   all[min].time.min, all[min].time.sec);
   getch();
}
 
 int STRUCT::init_athletes(athlete*& all, int count)
{
   int i, min = 0;
   all = new athlete[count]; //массив данных типа структура
   printf(" Введите данные для каждого спортсмена:\r\n");
   for(i = 0; i < count; ++i)
      {
         printf("%d. ", i + 1); //Порядковый номер записи спортсмена
         scanf("%s %s %d %d %d", &all[i].name, &all[i].f_name, &all[i].age,
                                               &all[i].time.min, &all[i].time.sec);
         if (i == 0) min = i;
         else if (all[i].age < all[min].age) min = i;
      }
   return min;
}
STRUCT.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
 
class STRUCT
{typedef struct 
   {
    int min; //минуты
    int sec; //секунды
   }time;
 
 typedef struct
   {
    char name[20]; //имя
    char f_name[20]; //фамилия
    int age; //возраст
    time time; //результат
   }athlete;
   
 public:
        STRUCT();
        int init_athletes(athlete*& all, int count);
}
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
09.09.2011, 04:33 6
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
25
26
27
28
29
30
#include <iostream>
 
using namespace std;
 
class Struct {
    
    struct time_ms {
        int min; //минуты
        int sec; //секунды
    };
 
    struct athlete {
        char name[20]; //имя
        char f_name[20]; //фамилия
        int age; //возраст
        Struct::time_ms time_ms; //результат
    };
   
public:
    Struct();
    int init_athletes(athlete *&all, int count);
};
 
Struct::Struct() {}
 
int main()
{
    Struct s;
    return 0;
}
1
0 / 0 / 0
Регистрация: 04.09.2011
Сообщений: 106
09.09.2011, 04:39  [ТС] 7
А в двух файлах как сделать?
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
09.09.2011, 04:45 8
struct.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Struct {
    
    struct time_ms {
        int min; //минуты
        int sec; //секунды
    };
 
    struct athlete {
        char name[20]; //имя
        char f_name[20]; //фамилия
        int age; //возраст
        Struct::time_ms time_ms; //результат
    };
   
public:
    Struct();
    int init_athletes(athlete *&all, int count);
};

struct.cpp
C++
1
2
3
#include "struct.h"
 
Struct::Struct() {}

main.cpp
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include "struct.h"
 
using namespace std;
 
int main()
{
    Struct s;
    return 0;
}
1
0 / 0 / 0
Регистрация: 04.09.2011
Сообщений: 106
09.09.2011, 05:00  [ТС] 9
Так что ли?

STRUCT.cpp
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
25
26
27
28
29
30
31
32
33
34
#include "struct.h"
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
 
 Struct::Struct() 
{Struct s;
 athlete* all = NULL;
 int count = 0;
 int min = 0;
 clrscr();
 printf(" Введите количество спортсменов: ");
 scanf("%d", &count); //Ввод количества участников
 min = init_athletes(all, count);
 printf("\n Самый юный участник:\nМесто в реестре: %d\nФамилия: %s\nИмя: %s\nВозраст:"  
 "%d\n\Bремя: %d min. %d sec.", min + 1, all[min].name, all[min].f_name, all[min].age,
 all[min].time.min, all[min].time.sec);
 getch();
 return 0;
}
 
int struct::init_athletes(athlete*& all, int count)
{int i, min = 0;
 all = new athlete[count]; //массив данных типа структура
 printf(" Введите данные для каждого спортсмена:\r\n");
 for(i = 0; i < count; ++i)
   {printf("%d. ", i + 1); //Порядковый номер записи спортсмена
    scanf("%s %s %d %d %d", &all[i].name, &all[i].f_name, &all[i].age,
      &all[i].time.min, &all[i].time.sec);
    if (i == 0) min = i;
    else if (all[i].age < all[min].age) min = i;
   }
 return min;
}
STRUCT.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Struct 
{
    
    struct time_ms 
    {
        int min; //минуты
        int sec; //секунды
    };
 
    struct athlete 
    {
        char name[20]; //имя
        char f_name[20]; //фамилия
        int age; //возраст
        Struct::time_ms time_ms; //результат
    };
   
public:
    Struct();
    int init_athletes(athlete *&all, int count);
};
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
09.09.2011, 05:25 10
регистр соблюдай
struct и Struct - разные вещи

Цитата Сообщение от maxim43k
C++
1
int struct::init_athletes(athlete*& all, int count)
неправильно

пример конструктора
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
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
 
using namespace std;
 
class Struct {
    
    struct time_ms {
        int min; //минуты
        int sec; //секунды
    };
 
    struct athlete {
        char name[20]; //имя
        char f_name[20]; //фамилия
        int age; //возраст
        Struct::time_ms time_ms; //результат
    };
 
    athlete a;
   
public:
    Struct();
    int init_athletes(athlete *&all, int count);
    
    athlete getath() { return a; }
};
 
Struct::Struct() { athlete t = { "a", "b", 3, { 1, 2 } }; a = t; }
 
int main()
{
    Struct s;
    cout << s.getath().name;
    return 0;
}
1
0 / 0 / 0
Регистрация: 04.09.2011
Сообщений: 106
09.09.2011, 05:30  [ТС] 11
Правильно ли построен класс
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
09.09.2011, 05:35 12
time_ms везде сделай
заменил из-за наличия стандартной функции time()
1
0 / 0 / 0
Регистрация: 04.09.2011
Сообщений: 106
09.09.2011, 05:41  [ТС] 13
Это ещё что такое?

Правильно ли построен класс
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
09.09.2011, 05:45 14
Цитата Сообщение от maxim43k
Это ещё что такое?
проверь проект
смотри здесь
1
0 / 0 / 0
Регистрация: 04.09.2011
Сообщений: 106
09.09.2011, 10:17  [ТС] 15
Несколько раз уже перепроверял, мой глаз не видит ошибку. Что-то в правильности создания класса...

STRUCT.cpp
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
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "struct.h"
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
 
 STRUCT::STRUCT() 
{
  STRUCT s;
  athlete* all = NULL;
  int count = 0;
  int min = 0;
  clrscr();
  printf(" Введите количество спортсменов: ");
  scanf("%d", &count); //Ввод количества участников
  min = init_athletes(all, count);
  
  printf("\n Самый юный участник:\nМесто в реестре: %d\nФамилия: %s\nИмя: %s\nВозраст:"  
  "%d\n\Bремя: %d min. %d sec.", min + 1, all[min].name, all[min].f_name, all[min].age,
  
  all[min].time_ms.min, all[min].time_ms.sec);
  getch();
}
 
int init_athletes(athlete*& all, int count)
{int i, min = 0;
 all = new athlete[count]; //массив данных типа структура
 printf(" Введите данные для каждого спортсмена:\r\n");
 for(i = 0; i < count; ++i)
   {
     printf("%d. ", i + 1); //Порядковый номер записи спортсмена
     scanf("%s %s %d %d %d", &all[i].name, &all[i].f_name, &all[i].age,
                             &all[i].time_ms.min, &all[i].time_ms.sec);
     if (i == 0) min = i;
     else if (all[i].age < all[min].age) min = i;
   }
 return min;
}
STRUCT.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class STRUCT 
{
     struct time_ms 
    {
        int min; //минуты
        int sec; //секунды
    };
 
     struct athlete 
    {
        char name[20]; //имя
        char f_name[20]; //фамилия
        int age; //возраст
        STRUCT::time_ms time_ms; //результат
    };
   
public:
    STRUCT();
    int init_athletes(athlete*& all, int count);
};
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
09.09.2011, 10:54 16
Цитата Сообщение от maxim43k
C++
1
int init_athletes(athlete*& all, int count)
C++
1
int Struct::init_athletes(athlete*& all, int count)
поменяй STRUCT обратно

должны ещё атлеты храниться в экземпляре класса
0
0 / 0 / 0
Регистрация: 04.09.2011
Сообщений: 106
09.09.2011, 10:58  [ТС] 17
Постоянно одна и та же ошибка возникает:

Правильно ли построен класс
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
09.09.2011, 11:09 18
в 8ой строке STRUCT s; убрать
в 9ой строке athlete* убрать (это надо в классе описать)
ещё раз
0
0 / 0 / 0
Регистрация: 04.09.2011
Сообщений: 106
09.09.2011, 11:28  [ТС] 19
Получилось так, не работает

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class STRUCT 
{
     struct time_ms 
    {
        int min; //минуты
        int sec; //секунды
    };
 
     struct athlete 
    {
        char name[20]; //имя
        char f_name[20]; //фамилия
        int age; //возраст
        STRUCT::time_ms time_ms; //результат
    };
    
    STRUCT::athlete* all = NULL;
   
public:
    STRUCT();
    int STRUCT::init_athletes(STRUCT::athlete*& all, int count);
};
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
09.09.2011, 11:32 20
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
25
26
27
28
29
30
31
32
class Struct
{
    struct time_ms {
        int min; //минуты
        int sec; //секунды
    };
 
    struct athlete {
        char name[20]; //имя
        char f_name[20]; //фамилия
        int age; //возраст
        Struct::time_ms time_ms; //результат
    };
        
    athlete *all;
   
public:
    Struct();
    int init_athletes(int count);
};
 
Struct::Struct() 
{
    all = NULL;
}
 
int Struct::init_athletes(int count)
{
    all = new athlete[count];
    // здесь инициализация
    return 0;
}
0
09.09.2011, 11:32
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.09.2011, 11:32
Помогаю со студенческими работами здесь

Как правильно работать с GUI , класс main и класс окна
Здравствуйте , вот только не давно начал работать с пользовательским интерфейсом. Сейчас пытаюсь сделать программу , работаю в NetBeans....

Как правильно передавать параметры из класса А в класс С через класс B?
Всем привет! Пишу игру - Морской бой! Есть класс Game. Также есть класс Battlefield (модель поля, где корабли располагаются). Но нам нужно...

Неверно построен график
Имеется код: T=44; % длительность сигнала dt = 0.01; %шаг времени t = 0:dt:T; df = 1/T; F = 1/dt; f = -F:2*df:F; s =...

Правильно ли построил класс?
Здравствуйте, нужен совет. задание такое: построить иерархию домашней электротехники. я сделал общий абстрактный класс который содержит...

Правильно ли создан класс
Всем привет. Подскажите, где в этом классе правильно было бы поставить деструктор, и нужен ли он? Получается что данные в этом классе часто...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Отключение отслеживания файла, занесенного в .gitignore в Git
hw_wired 10.02.2025
Git помогает следить за изменениями в проекте, но иногда требуется исключить определенные файлы из системы контроля версий. Это могут быть конфигурационные файлы с локальными настройками, временные. . .
Что такое use strict в JavaScript
hw_wired 10.02.2025
Директива use strict - способ перевода JavaScript-кода в строгий режим работы, который делает язык более безопасным и предсказуемым. Она появилась в ECMAScript 5 как ответ на многочисленные проблемы,. . .
Как в jQuery проверить, что элемент скрыт
hw_wired 10.02.2025
jQuery предоставляет несколько эффективных способов определить, скрыт элемент или отображается на странице. Самый простой метод использует специальные селекторы :hidden и :visible. Селектор :hidden. . .
Как проверить (check out) ветку Git в удаленном репозитории
hw_wired 10.02.2025
Проверка удаленной ветки в Git требует понимания нескольких базовых концепций и точного выполнения определенной последовательности действий. Для начала необходимо получить актуальную информацию о. . .
chucknorris в HTML и другие обозначения цветов
hw_wired 10.02.2025
HTML, как основной язык разметки веб-страниц, прошел длинный путь развития в плане работы с цветами. На заре развития веб-технологий разработчики могли использовать только базовый набор из 16. . .
Стек и куча: отличия и назначение
hw_wired 10.02.2025
Управление памятью - ключевой элемент работы любой программы. В современных языках программирования память делится на две основные области: стек и кучу. Каждая из них обладает уникальными. . .
Комментарии в JSON
hw_wired 10.02.2025
JSON - текстовый формат обмена данными, построенный на основе синтаксиса JavaScript. Этот формат отличается простотой, читаемостью и широкой поддержкой во всех современных языках программирования. . . .
Перезаписываем локальные файлы с помощью git pull
hw_wired 10.02.2025
Git pull - незаменимая команда для синхронизации локального репозитория с удаленным. При работе над проектом в команде разработчиков часто возникает необходимость получить актуальные изменения,. . .
Оператор --> в C++
hw_wired 10.02.2025
Оператор --> (называемый "spaceship operator" или оператор космического корабля) - важное нововведение в стандарте C++20, упрощающее реализацию операций сравнения в пользовательских типах данных. . . .
Отмена git add до коммита
hw_wired 10.02.2025
Git предлагает несколько методов для отмены индексации файлов перед созданием коммита. Разработчики часто сталкиваются с ситуацией, когда нужно убрать файлы из индекса, не теряя внесенные изменения в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru