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

Как создать неопределенное (т.е. не ограниченное в коде) количество экземпляров класса? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ обработка исключений http://www.cyberforum.ru/cpp-beginners/thread162674.html
Есть вот такой код: #include <iostream> #include <fstream> using namespace std; int _tmain(int argc, _TCHAR* argv) { //Input from file ifstream fin ("input.txt");
C++ Ввод и вывод данных класса Привет уважаемые гуру! Я к вам с очередным вопросом :senor: Нужно вывести данные класса Store : #include <stdio.h> #include <iostream.h> #include <String.h> #include "Store.h" Store::Store() http://www.cyberforum.ru/cpp-beginners/thread162663.html
system("del C:\\1"); и system("rmdir C:\\1"); C++
Нужно удалить каталог и все файлы и подкаталоги в нем. Нашла в нете функции: system("del C:\\1"); // удалить все файлы из папки system("rmdir C:\\1"); // удалить саму директорию. Вот только system("rmdir C:\\1"); не работает если в директории есть какие либо другие каталоги. Поскажите, пожалуйста, как считывать имена папок в каталоге чтобы для каждой из них реализовать эти функции примерно...
C++ Создать программу, перехватывающую видеопоток в окно
возможно ли создать такую программу чтобы видеопоток, допустим, WMplayerа или какой нибудь игрушки с небольшим разрешением 640х480 или 1024х768, перехватывалось в окно? у кого какие будут предложения?
C++ scrnsave.lib http://www.cyberforum.ru/cpp-beginners/thread162630.html
Привет всем, разбираю статью (как написать screensaver), там есть пример: #include <windows.h> #include <scrnsave.h> LRESULT WINAPI ScreenSaverProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { return 0; }
C++ WinAPI Калькулятор на 4 действия с выбором системы счисления Всем привет! у меня простая, вроде бы, задачка написать калькулятор 4 действия и выбор системы исчисления (две радиокнопки двоичное и десятичное) на WinAPI C++ Вроде бі всё учла,но что-то не получается. Помогите, пожалуйста разобраться прилагаю код cpp ну и архив со всеми ресурсами #include<Windows.h> #include<tchar.h> #include<iostream> #include"resource.h" подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
04.09.2010, 11:30     Как создать неопределенное (т.е. не ограниченное в коде) количество экземпляров класса?
Цитата Сообщение от Nameless One Посмотреть сообщение
Со вторым примером аналогично, только создается двумерный массив
Я думаю, тут правильнее сказать "массив указателей". При таком способе создавать новые объекты можно с любым объявленным для них конструктором. При первом способе объекты создаются только с помощью конструктора по умолчанию. Второе преймущество массива указателей - операции сортировки выполняются значительно быстрее за счёт того, что меняются значения указателей, а не самих объектов. К примеру:
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
...
class MyClass {
  char * name;
  int * last_year_incommings;
  // ещё куча полей, которые могут быть указателями на какие-то данные
...
public:
...
  MyClass(const MyClass & another); // конструктор копирования, в котором так или иначе 
// прийдётся выполнять копирование всех данных, включая строки, массивы, или что там ещё
// класс содержит
  MyClass& operator = (const MyClass & another); // перегруженный оператор, в котором и происходит
// вся возня с копированием данных
...
};
...
// обмен значений двух объектов может выглядеть так:
MyClass a(/* параметры конструктора */), b(/* параметры конструктора */), c;
c = a;
a = b;
b = c;
// отработает, но медленно за счёт копирования всех данных
MyClass * pa, * pb, *pc;
pa = new MyClass(/* параметры конструктора */);
pb = new MyClass(/* параметры конструктора */);
pc = pa;
pa = pb;
pb = pc;
// отработает значительно быстрее, т.к. сами данные лежат на месте, меняются только указатели
...
 
Текущее время: 08:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru