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

функции new, delete - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Реализация операций в дочернем потоке http://www.cyberforum.ru/cpp-beginners/thread167110.html
Помогите пожалуйста исправить ошибку, в общем нужно ввод числа N и вывод S (т.е. суммы) реализовать в дочернем потоке. Вот листинг: #include <iostream> #include <pthread.h> #include <semaphore.h> #include <conio.h> int S; int S1; int N; int i; sem_t;
C++ Кликер помогите пожалуйста перевести код на с++ using System; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { private int _next_btn, _score; private Timer _t; public Form1() http://www.cyberforum.ru/cpp-beginners/thread167090.html
C++ Как зделать чтоб программа удалила сама себя
Привет всем. У меня собственно такой вопрос: Как зделать чтоб программа удалила сама себя? Я имею в виду, чтоб после запуска, приложение выполнило некие действия, а по завершении работы удалило свой .exe с которого запускалось.
C++ формирование матрицы связности по списку по контактам
нужно сформировать матрицу связности, что бы потом нарисовать полный граф. функция неправильно работает...когда рисует граф, то не все рисуется... в чем ошибка?? и как можно по другому сделать?? ______________________________________________________________________ вот процедура: int **Matr(spisok *first, int ke, int kc) {
C++ Triangle http://www.cyberforum.ru/cpp-beginners/thread167070.html
Given 3 positive real numbers x, y, z. Output "YES" if it is possible to construct a triangle with side lengths x, y, z. Output "NO" otherwise. Example: Input: 3 4 5 Output YES Example: Input:
C++ Teacher's Day Teacher’s day is celebrated each year on the first Sunday of the October. Given natural number n, that represents the number of the year. Output the date of the Teacher’s day of that year. Example: Input: 2010 Output 3 подробнее

Показать сообщение отдельно
Red Planet
 Аватар для Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263
19.09.2010, 11:48     функции new, delete
Здравствуйте, один из моих вопросов также о new и delete.
  1. Встретил при изучении ООП перегрузку операторов new и delete для создания экземпляров через указатели и динамических массивов.
    Следующий код работает и без их перегрузки.
    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
    
    class A {
    /*Функции, конструкторы*/
    }
     
    ostream& operator << (ostream &s, const A &top) {
     s <<top.w<<" ("<<top.c<<")."<<endl;
     return s;
    }
     
     
    istream& operator >> (istream &is, A &top) {
     is >>top.w>>top.c;
     return is;
    }
     
    int _tmain (int argc, _TCHAR* argv[]) {
     A *pointer;
     int n;
     cout <<"Quantity of things: ";
     cin >>n;
     for (int i=0; i<n; i++) cin >>pointer[i];
     for (int i=0; i<n; i++) cout <<pointer[i];
     delete []pointer;
    }
    Выходит, что операторы new и delete нужно перегружать только тогда, когда я хочу как-то по-своему задать правила выделения памяти под динамически создаваемые экземпляры (массивы) и не стоит изобретать велосипед, если и так все создается, вводится и выводится без ошибок? Правильно понимаю?
  2. Есть две вещи, измеряющие, сколько выполняется любой участок кода (можно оценить быстродействие решения задачи несколькими методами, чтобы выбрать наискорейший).
    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
    
    /*Первая*/
    class CTimer
    {
      LARGE_INTEGER mlFrequency;
      LARGE_INTEGER mlStart;
    public:
      double duration;
      CTimer() {
        QueryPerformanceFrequency(&mlFrequency);
      }
      void start() {
        QueryPerformanceCounter(&mlStart);
      }
      void  stop() {
        LARGE_INTEGER lEnd;
        QueryPerformanceCounter(&lEnd);
        duration  = (double(lEnd.QuadPart - mlStart.QuadPart) / mlFrequency.QuadPart)*1000;
      }
    };
     
     
    /*Вторая*/
    DWORD startTime, endTime;
    startTime=GetTickCount();
    /*Участок кода (решение какой-либо задачи), который нужно измерить.*/
    endTime=GetTickCount();
    printf ("Performance time: %g ms.\n", endTime-startTime); //Вывод результата.
    Уверен, что существуют и другие. Могут ли подобные счетчики быть хорошими или плохими? Какие лучше и какие хуже?
 
Текущее время: 09:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru