Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 03.05.2015
Сообщений: 40

Класс, считающий количество созданных экземпляров

22.06.2015, 22:29. Показов 4940. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

Дали задание написать класс, считающий количество созданных объектов класса с перегрузом оператора + и деструктором...

Не могу понять для чего именно идёт инструктор и чем именно считать объекты, т.к. интеджер в private: не работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int main()
{
  Class x,y;
  int i;
       
  x+y,(i=Class::objectsNum());
  cout<<i<<",";
 
  x+y;
  i=Class::objectsNum();
  cout<<i<<endl;
  return 0;
}
Заранее спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.06.2015, 22:29
Ответы с готовыми решениями:

Написать код, считающий количество совпадающих символов в тексте
Нужно написать код, который будет подсчитывать количество слогов &quot;се&quot; в тексте, предоставленным в другом документе

Дополнить класс статическим полем Count для подсчёта количества созданных экземпляров класса
Дополнить класс статическим полем Count для подсчёта количества созданных экземпляров класса

Дополнить класс статическим полем Count для подсчёта количества созданных экземпляров класса
Дополнить класс статическим полем Count для подсчёта количества созданных экземпляров класса

9
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
22.06.2015, 22:35
Цитата Сообщение от Vlad_Awe Посмотреть сообщение
т.к. интеджер в private: не работает
почему не работает? мне кажится он делает то, что вы ему пишите делает
0
0 / 0 / 0
Регистрация: 03.05.2015
Сообщений: 40
22.06.2015, 22:45  [ТС]
Вот так не работает
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 Class
{
private:
 
    int n = 0;
    int a;
 
public:
 
    Class()
    {
        a = 10;
        n++;
    }
    Class(int x)
    {
        a = x;
        n++;
    }
    
    Class operator + (Class k)
    {
        Class y(a+k.a);
        n++;
    }
 
    int objectsNum()
    {
        return n;
    }
 
};
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
22.06.2015, 22:57
Блин, с одной стороны хочется помочь - с другой это только навредит вам. Не хочу втупую писать код с нуля вам, так как будете Бузовой в мире программирования.

мои советы:
C++
1
2
3
4
5
Class operator + (Class k)
{
Class y(a+k.a);
n++;
}
Данная конструкция должна работать как и в случаи инта
C++
1
int x = 1 + 2; // x == 3
пока что
C++
1
2
Class a,b,c;
c = a+ b;
не сработает.



2.) В классе вы определяете, что нужно поле int n; следовательно у каждого класса будет такое поле. И у всех оно будет равно 1 после создания. Будет 200 экземпляров и 200 переменных n - что-то не так у вас. Как это можно решить?
0
0 / 0 / 0
Регистрация: 03.05.2015
Сообщений: 40
22.06.2015, 23:06  [ТС]
Нет все эти манипуляции с объектами я понимаю, я не понимаю как можно их именно посчитать внутри класса, так, чтобы в мэйне можно было просто через класс функцию запустить i = Class::objectsNum() c присвоением а x+y по идее просто создает третий объект с суммой значений предыдущих двух

Добавлено через 4 минуты
IntelliSense: a nonstatic member reference must be relative to a specific object
на месте i = Class::objectsNum() в main()

Что делать именно в случае такой ошибки, в чем тут дело? Мне полный код для копи-паста не нужен, мне просто понять...
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
22.06.2015, 23:35
ну раз поняли про первый пункт, что я писал и проскочили его - удачи ) *тут_грустный_смайлик_потому_что_потрати л_время_на_очередного_гуманитария*
0
0 / 0 / 0
Регистрация: 03.05.2015
Сообщений: 40
23.06.2015, 00:32  [ТС]
ААА вот оно что, тут через конструктор копирования нужно как-то делать, только я его не очень понимаю =(
Кто-нибудь внятно подсказать может?

Добавлено через 9 минут
Цитата Сообщение от Vlad_Awe Посмотреть сообщение
x+y,(i=Class::objectsNum())
Как сделать так, чтобы здесь ошибки не было?
0
265 / 165 / 56
Регистрация: 25.02.2015
Сообщений: 435
23.06.2015, 00:53
считающий количество созданных объектов класса
созданных объектов собственного типа? если так, то счетчик должен быть глобальным.
и тут два варианта.
1. счетчик именно глобальная переменная.
2. счетчик - статическая переменная, которая в общем то тоже глобальная переменная,
только с ограниченным правом доступа. но если ее сделать публичной - получится то же,
что и в первом варианте.
так вот в каждом конструкторе своего класса (дефолтный, конструктор копирования и прочие)
наращивайте эту переменную на еденицу. когда все закончится, выводите ее значение.
1
0 / 0 / 0
Регистрация: 03.05.2015
Сообщений: 40
23.06.2015, 01:47  [ТС]
Теперь проблема с оператором присвоения

x+y,(i=Class::objectsNum())

выдает ошибку...i - это int в main(), к которому должно присваиваться значение Klasse::anzahlInstanzen()) через оператор присвоения (здесь не могу понять как)...

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

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
#include <iostream>
using namespace std;
 
int n = 0;
 
class Class
{
private:
 
    int x;
 
public:
 
    Class()
    {
        x = 10;
        n++;
    }
 
    Class(int num)
    {
        x = num;
        n++;
    }
 
    Class(const Class & origin)
    {
        n++;
    }
 
    int objectsNum()
    {
        return n;
    }
 
    Class operator + (Class & obj)
    {
        Class r(x + obj.x);
        return r;
    }
 
    int operator = (int i)
    {
        i = Class::objectsNum();
        return i;
    }
 
    ~Class() {}
};
 
int main()
{
    Class x, y;
    int i;
 
    x + y, (i = Class::objectsNum());
    cout << i << ",";
 
    x + y;
    i = Class::objectsNum();
    cout << i << endl;
    return 0;
}
Добавлено через 6 минут
main() менять нельзя, он такой должен быть по заданию
0
 Аватар для egor2116
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
23.06.2015, 07:49
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 <iostream>
 
class Sample
{
    public:
        static int num;
        Sample(){ ++num; }
};
 
int Sample::num = 0;
 
int main()
{
 
    Sample s1, s2, s3, s4;
    std::cout << "Building is: " << std::endl;
    std::cout << s1.num << std::endl;
    std::cout << s2.num << std::endl;
    std::cout << s3.num << std::endl;
    std::cout << s4.num << std::endl;
    
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.06.2015, 07:49
Помогаю со студенческими работами здесь

C#: десериализация динамически созданных экземпляров класса
Суть проблемы: Есть сборка (dll), в которой определён некий класс. Есть основная прога, которая динамически загружает эту сборку...

Создать цикл, считающий количество делений
Добрый день. Проблема такая - нужно создать цикл, который бы считал количество делений ячейки А на ячейку В до достижения результата,...

Макрос считающий количество заполненных строк
Доброго дня! http://rusfolder.com/32188976 - файл. В табличке есть 4-ый столбик, в котором сайты. Задача в том, чтобы макрос посчитал в...

Включение в класс экземпляров другого класса
Необходимо разработать программу на языке C++, в которой будет определено и реализовано два класса из варианта задания. Во первом классе...

Добавление экземпляров одного класса в другой класс
Доброе утро! В программе создано 2 класса. 1-й предназначен для создания объекта под названием &quot;студент&quot;. Он имеет различные...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru