powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / посчитать количество объектов класса
9 сообщений из 34, страница 2 из 2
посчитать количество объектов класса
    #38082810
MaximuS_G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно и просто завести счетчик который будет их считать.
Так счетчик и так есть - int students;
А про ptr_vector<T> я не знаю пока, сейчас почитаю :)
Спасибо.
...
Рейтинг: 0 / 0
посчитать количество объектов класса
    #38082812
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заодно и про string почитайте
...
Рейтинг: 0 / 0
посчитать количество объектов класса
    #38082819
MaximuS_G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
string пока не учили :). Я сам пока его решил не разбирать
...
Рейтинг: 0 / 0
посчитать количество объектов класса
    #38083099
Обиженный Нацист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMasterZivОставляй динамический массив, хотя бы для целей обучения.

Ради обучения - ещё туда-сюда, но городить динамику ради 200 байт?..


А вы не подозреваете что может быть не одна группа, а 100 ?
Что может быть не просто группа студентов конкретного курса, но и группа студентов по интересам.
Думаю нужно начинать уже сейчас в правильное русло товарища направить. А не тяпляп пока так сойдет, раз уж речь идет об ООП.
...
Рейтинг: 0 / 0
посчитать количество объектов класса
    #38083672
vaddddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonКритикую. Неправильно.

Можно поконкретнее?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
	void addStudent(char Name[SIZE], int year)
	{
	
	student *Ptemp = Pst;     //     временный указатель на старый массив
	Pst = new student[students+1];  // создаем новый массив размером +1

	for (int i=0; i<students; i++)       //   копируем все из старого в новый
		Pst[i] = Ptemp[i];
	
	strcpy(Pst[students].name, Name); // добавляем нвые данные в массив
	Pst[students].age = year;

	if (students>0) delete [students]Ptemp; // удаляем старый массив

	students ++;  счетчик +1

	
	}
...
Рейтинг: 0 / 0
посчитать количество объектов класса
    #38084246
MaximuS_G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
up :)
...
Рейтинг: 0 / 0
посчитать количество объектов класса
    #38084424
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximuS_G, а что спросить хотел?
Твой вариант компилируется и работает. Только:
Код: plaintext
1.
2.
3.
4.
      заменил      
      if (students>0) delete [students]Ptemp;
      на 
      if (students>0) delete [] Ptemp;


можно и так написать

Код: plaintext
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.
#include <iostream>
#include <vector>
#include <string>

using namespace std;

class Student
{
private:
        int age;
        string name;

public:
        Student(int _age, string _name):age(_age), name(_name)
            {}

        void print_age()
            { cout<<"Name: "<<name<<" Age: "<<age<<endl;}
};

class StudentGroup
{
private:
        vector<Student *> *students;
public:
        StudentGroup()
        {
            //cout<<"new vector<Student *>"<<endl;
            students=new vector<Student *>;
        }

        ~StudentGroup()
        {
            int imax=students->size();
            for(int i=0;i<imax;i++)
            {
                //cout<<"delete: "<<i<<endl;
                delete students->at(i);
            }

            //cout<<"delete vector<Student *> "<<endl;
            delete students;
        }

        void add_student(int age, string name="")
        {
            students->push_back(new Student(age, name));
        }

        void print_students()
        {
            int imax=students->size();
            cout<<"Amount of students: "<<imax<<endl;
            for(int i=0;i<imax;i++)
            {
                cout<<i+1<<" - ";
                students->at(i)->print_age();
            }
        }
};

int main()
{
	StudentGroup *p21v2=new StudentGroup();
	p21v2->add_student(18);
	p21v2->add_student(19,"Kolya");
	p21v2->add_student(22,"Sereja");

	p21v2->print_students();
	cout<<endl;

    delete p21v2;
	return 0;
}


...
Рейтинг: 0 / 0
посчитать количество объектов класса
    #38084894
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vaddddd, хм... да. Вобщем-тот сойдет. Ну если если такой синтаксис delete[..] прокатывает
и память не утекает. То вобщем-то нормально.
...
Рейтинг: 0 / 0
посчитать количество объектов класса
    #38086122
Vadddddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,
вроде delete [n] p и delete [] p - одно и тоже.

m_Sla ,

спасибо, так конечно намного красивее,
мы только вектор еще не учили.
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / посчитать количество объектов класса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]