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

Класс как тип данных, ошибка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать программу учета сотрудников. http://www.cyberforum.ru/cpp-beginners/thread1026909.html
Лабораторная работа по теме структуры Создать программу учета сотрудников. О сотруднике необходимо хранить следующие данные: - ФИО - должность - дата рождения. Данные о сотрудниках следует хранить в массиве структур
C++ Как считать из файла вторую строку? хочу узнать как можно считать первую строку или в вторую. То есть к примеру есть несколько строчек и мне нужно считать именно вторую! как это сделать??? http://www.cyberforum.ru/cpp-beginners/thread1026904.html
написать программу для топографов, чтоб считала площади по формуле C++
Ребята помогите! Нужно написать программу для топографов, чтоб считала площади по формуле. Принцип такой: 1. Нужно указать количество точек замкнутого полигона. 2. Для каждой формы нужно ввести свое количество координат (x1, y1, .... xn, yn) 3. Потом по этим точкам посчитать по формуле. Формула общая для всех. Пример: допустим - пятиугольник (точек 5), вводим кол-во точек; далее вводим x1,...
Создать класс, определить конструктор C++
Вообще без понятия, что тут делать. Помогите мне, пожалуйста!!! Задание: Создать класс «машина», имеющая марку, число цилиндров, мощность и цену. Определить конструктор и функцию печати. Создать класс «грузовик», имеющий грузоподъемность кузова. Определить конструктор, функцию печати. Создать класс «автоколонна». Реализовать конструктор, деструктор, функции печати, добавления и удаления...
C++ задача о ранце http://www.cyberforum.ru/cpp-beginners/thread1026891.html
Добрый все вечер!помоги пожалуйста решить задачу о рюкзаке на С++ разными методами-ветвей и границ,жадный алгоритм,генетический,динамический...Кто что может,помогите:(((
C++ Как вывести данные структуры не ссылаясь на её поля к примеру вот структура struct test_struct { int a; wchar_t b; int c; float d; } Если можно с примером пожалуйста подробнее

Показать сообщение отдельно
OlegPL
5 / 5 / 0
Регистрация: 22.10.2013
Сообщений: 100
03.12.2013, 19:49  [ТС]     Класс как тип данных, ошибка
Добавил только конструктор копирования и проблема разрешилась, спасибо большое! А оператор присваивания описывать обязательно? Решил чуток усовершенствовать и хотелось бы узнать, как можно создать динамический массив группу которая может бесконечным образом принимать в себя студентов? Это нужно в самом классе CGroup создать указатель или указатель на указатель, или оставить в классе всё как есть и сделать динамический массив в самом main()?

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
 
using namespace std;
 
class CStudent
{
private:
    char *name;
    char *surname;
public:
 
    CStudent()
    {
        name = NULL;
        surname = NULL;
    }
 
    CStudent(char *name, char *surname)
    {
        set_name(name);
        set_surname(surname);
    }
 
    CStudent(const CStudent &tmp)
    {
        name = new char[strlen(tmp.name) + 1];
        strcpy(name, tmp.name);
        surname = new char[strlen(tmp.surname) + 1];
        strcpy(surname, tmp.surname);
    }
 
    void set_name(char *name)
    {
        if(this->name != NULL)
            delete [] name;
        this->name = new char[strlen(name) + 1];
        strcpy(this->name, name);
    }
 
    void set_surname(char *surname)
    {
        if(this->surname != NULL)
            delete [] surname;
        this->surname = new char[strlen(surname) + 1];
        strcpy(this->surname, surname);
    }
 
    void set_student(char *name, char *surname)
    {
        set_name(name);
        set_surname(surname);
    }
 
    void set_student(CStudent student)
    {
        if(name != NULL)
            delete [] name;
        if(surname != NULL)
            delete [] surname;
        name = new char[strlen(student.name) + 1];
        strcpy(name, student.name);
        surname = new char[strlen(student.surname) + 1];
        strcpy(surname, student.surname);
    }
 
    ~CStudent()
    {
        if(this->name != NULL)
            delete [] name;
        if(this->surname != NULL)
            delete [] surname;
    }
};
 
class CGroup
{
private:
    CStudent total_students;
public:
    CGroup()
    {}
 
    void set_to_group(CStudent student)
    {
        total_students.set_student(student);
    }
};
 
int main ()
{
    CStudent first, second;
    CGroup new_group[5];
 
    first.set_name("Vasya");
    first.set_surname("Pupkin");
    second.set_student("Vovochka", "Perepelkin");
 
    new_group[0].set_to_group(first);
    
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru