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

Динамическое создание объекта класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ установка русских шрифтов в локальном контексте http://www.cyberforum.ru/cpp-beginners/thread455141.html
РЕФ Добавлено через 1 час 30 минут как установить русский шрифт для локального потока используя средства языка а не конкретной системы? P.s. а может это невозможно? и эти присоединения локали к потокам влияют лишь на способ ввода\вывода дат, денежных сумм и чисел с плавающей точкой. а шрифт задается всегда глобально?
C++ Сделать класс, используя конструкторы и деструкторы классов, который делит два числа Доброго времени суток, помогите разобраться с ошибкой в коде. Компилятор выдает ошибку "Invalid floating point" на делении x i y. Прочие операции такие как сумма, разница и умножение работают. Подскажите где не то написал, так как С++ и ООП в частности начал учить недавно. Заранее благодарен. //dilennya.cpp #pragma hdrstop #pragma argused #include <iostream> #include <cstring> using... http://www.cyberforum.ru/cpp-beginners/thread455140.html
C++ Последовательность чисел
Добрый день уважаемые форумчане. Вот такой вот вопрос: Есть последовательность чисел с шагом 77, например -103, -26, 51, 128, 205, и т.д. в какой то момент времени появляется случайное число, скажем 200, и далее нам необходимо определить к какому числу из последовательности округлять то есть либо 128 либо 205, для числа 0 это будут (-26 и 51). Подскажите пожалуйста алгоритм работы, или код как...
Найти название предприятия, заплатившего меньше всего налогов C++
Добрый день, Вот задание: 1. Добавлять данные структуры с указанными полями в файл 2. Просматривать структуры из файла 3. Функции программы сделать в виде меню 4. Поля записи: код предприятия, название, сумма уплаченных налогов. Операция: найти название предприятия, заплатившего меньше всего налогов. Вот отдельно написал работу с файлом: struct Firm { char code;
C++ Сложность в реализации команды http://www.cyberforum.ru/cpp-beginners/thread455095.html
Программа открывает окно, заголовком которого является командная строка. Обеспечить возможность перетаскивания окна за любую точку его содержимого.
C++ Вывод в файл на русском языке Добрый день!!! Ребят, проконсультируйте, пожалуйста) Программа, которая записывает текст в файл до тех пор, пока не введена пустая строка. Собственно говоря, как сделать так, чтобы вывод в файл, если я ввожу строку на русском языке, выполнялся корректно. Т.е. строка "русский язык" отображается в файле как "агббЄЁ© п§лЄ" .На английском все нормально) И еще один вопрос: файл не открывается,... подробнее

Показать сообщение отдельно
shadowstar
1 / 1 / 0
Регистрация: 28.02.2012
Сообщений: 20
29.02.2012, 15:57  [ТС]     Динамическое создание объекта класса
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int size;
    cout << "Enter number of students: ";
    cin >> size;
    student *arr = new student[size];
    for (int i = 0; i < size; i++)
    {
        cout << "Insert student №" << i + 1 << ": ";
        cin >> arr[i].record_last_name; // выдает ошибку Error: a pointer to a bound function may only be used to call the function
    }
 
    cout << "Are in array: \n";
    for (int i = 0; i < size; i++)
        arr[i].Print();
Добавлено через 3 минуты
Цитата Сообщение от fasked Посмотреть сообщение
Дорогой, да Вы никак бредите... Язык С++ компилируемый, а не динамический. Все имена переменных должны быть известны на этапе компиляции, а никак не в рантайме.

Вам надо сделать метод getName() в классе и использовать его для поиска нужного экземпляра.
Можно так же воспользоваться чем-то вроде std::map.

Или я неправильно понимаю поставленную задачу. Опишите изначальную задачу, а не так как Вы ее поняли.
изначальная задача состоит в том что бы создать группу студентов используя динамический массив
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
#include <iostream>
#include <string>
#include "student.h"
 
 
 
using namespace std;
void main ()
{
    system("mode con cols=70 lines=50");
 
    // вызов конструктора с параметрами
    student Tolik("Pustinskiy", "Tolik", "Aleksandrovich", 26, 1, "Dobrovolskogo 18", "80630514051", 1111, "Programmist");
 
    cout << "Show\n";
    Tolik.Print ();
 
    student tempArray;
 
    cout << "Last name\n";
    tempArray.record_last_name ();
 
    cout << "Name\n";
    tempArray.record_name ();
 
    cout << "Middle name\n";
    tempArray.record_middle_name ();
 
    cout << "Home address\n";
    tempArray.record_home_address ();
 
    cout << "Names of specialization\n";
    tempArray.record_names_of_specialization ();
 
    cout << "Age\n";
    tempArray.record_age ();
 
    cout << "Phone number\n";
    tempArray.record_phone_number ();
 
    cout << "Group number\n";
    tempArray.record_group_number ();
 
    cout << "Sex\n";
    tempArray.record_sex ();
 
    cout << "Show\n";
    tempArray.Print ();
 
}
Добавлено через 35 секунд
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#pragma once
#include <iostream>
#include <string>
 
using namespace std;
 
class student 
{
    string last_name;
    string name;
    string middle_name;
    int age;
    int sex;
    string home_address;
    string phone_number;
    int group_number;
    string names_of_specialization;
public:
    void record_last_name () // метод_записи_фамилии
    {
        string temporary;
        for (;;)
        {
            getline (cin , temporary);
            if (temporary.empty()){cout << "Empty string\n";continue;}
            else{cout << "Record\n" << endl;break;}
        }
        last_name = temporary;
    }
 
    void record_name () // метод_записи_имени
    {
        string temporary;
        for (;;)
        {
            getline (cin , temporary);
            if (temporary.empty()){cout << "Empty string\n";continue;}
            else{cout << "Record\n" << endl;break;}
        }
        name = temporary;
    }
 
    void record_middle_name () // метод_записи_отчества
    {
        string temporary;
        for (;;)
        {
            getline (cin , temporary);
            if (temporary.empty()){cout << "Empty string\n" <<endl;continue;}
            else{cout << "Record\n" << endl;break;}
        }
        middle_name = temporary;
    }
 
    void record_home_address () // метод_записи_домашнего_адреса
    {
        string temporary;
        for (;;)
        {
            getline (cin , temporary);
            if (temporary.empty()){cout << "Empty string\n" <<endl;continue;}
            else{cout << "Record\n" << endl;break;}
        }
        home_address = temporary;
    }
 
    void record_names_of_specialization () // метод_записи_специализации
    {
        string temporary;
        for (;;)
        {
            getline (cin , temporary);
            if (temporary.empty()){cout << "Empty string\n" <<endl;continue;}
            else{cout << "Record\n" << endl;break;}
        }
        names_of_specialization = temporary;
    }
 
    void record_age () // метод_записи_возраста
    {
        int temporary = 0;
        do
        {
            cin >> temporary;
        }while (temporary < 16 || temporary > 100);
        age = temporary;
    }
 
    void record_phone_number () // метод_записи_телефонного_номера
    {
        string temporary;
        for (;;)
        {
            getline (cin , temporary);
            if (temporary.empty()){cout << "Empty string\n" <<endl;continue;}
            else{cout << "Record\n" << endl;break;}
        }
        phone_number = temporary;
    }
 
    void record_group_number () // метод_записи_номера_группы
    {
        int temporary = 0;
        do
        {
            cin >> temporary ;
        }while (temporary <= 0);
        group_number = temporary;
    }
 
    void record_sex () // метод_записи_пола_студента
    {
        int temporary;
        cout << "1 = man, 2 = women\n";
        do
        {
            cin >> temporary;
        }while (temporary < 1 || temporary > 2);
        sex = temporary;
    };
 
    void Print () // вывод_на_экран_информации_о_студенте
    {
        cout << "Name of the student " << last_name << endl;
        cout << "The student's name " << name << endl;
        cout << "Student's first name " << middle_name << endl;
        cout << "Home address " << home_address << endl;
        cout << "Names_of_specialization " << names_of_specialization << endl;
        cout << "Age of the student " << age << endl;
        cout << "Phone number of the student " << phone_number << endl;
        cout << "Group_number " << group_number << endl;
        if (sex == 1) {cout << "Man\n";}
        else {cout << "Women\n";}
    }
 
    student () // конструктор_класса
    {
        last_name = "NULL";
        name = "NULL";
        middle_name = "NULL";
        age = 0;
        sex = 1;
        home_address = "NULL";
        phone_number = "NULL";
        group_number = 0;
        names_of_specialization = "NULL";
    }
 
    student (char *last_name_2, char *name_2, char *middle_name_2, int age_2, int sex_2, char *home_address_2, char *phone_number_2,
        int group_number_2, char *names_of_specialization_2)  // конструктор с параметрами
    {
        last_name = last_name_2;
        name = name_2;
        middle_name = middle_name_2;
        age = age_2;
        sex = sex_2;
        home_address = home_address_2;
        phone_number = phone_number_2;
        group_number = group_number_2;
        names_of_specialization = names_of_specialization_2;
    }
 
    ~student (void){}; // деструктор_класса
 
 
};
класс студент


 Комментарий модератора 
Используйте соответствующие теги для форматирования кода. Если Вы пишете на языке C++, то и код надо обрамлять тегами CPP.


Добавлено через 3 минуты
не могу понять как создать массив студентов если для добавления информации о студенте нужен объект который нужно создать(( использовать уже готовые не годится...я же не знаю какие у студентов будут фамилии((

а задача // создать группу студентов (динамический массив), отобразить данные на экран.

Добавлено через 2 минуты
сори за теги......я у вас недавно на форуме..... и на форумах вообще.........будем исправлять))
 
Текущее время: 00:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru