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

Вызовется ли приватный деструктор? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удаление строк и столбцов массива имеющих одинаковый квадратный корень из суммы элементов http://www.cyberforum.ru/cpp-beginners/thread1095549.html
главной задачей является удаление строк и столбцов массива имеющих одинаковый квадратный корень из суммы элементов (столбцов или строк). Где то, происходить выход за границы выделенной памяти, в следствии чего программа вылетает(а точнее, как я думаю в функции solve2). Помогите исправить, целый день просидел, не смог заставить работать, как надо. #include <iostream> #include <ctime> #include...
C++ Перекодировать из UCS-2 Little Endian в UTF Есть много файлов *.txt в кодировке (как я понял) UCS-2 Little Endian. Как перевести эти файлы в кодировку UTF или ANSI? Пока что делаю это вручную с помощью Notepad++ -> Кодировки -> Преобразовать в ANSI, но нужно сделать программно. Добавлено через 18 часов 34 минуты up. http://www.cyberforum.ru/cpp-beginners/thread1095542.html
Студенческий журнал (УДАЛИТЬ элемент) C++
Происходит считывание группы и данных о студентах (фамилия, имя, дата рождения), далее мне нужно удалить одного студента (чей номер указывается с клавиатуры). Что-то не так с функцией Delete, а именно: stud.fname=stud.fname; stud.sname=stud.sname; stud.date=stud.date; Почему и как это исправить? class Student
Вычесть 3 часа из даты, заданной в формате string C++
Есть, напримерstring mydate = "01.01.13"; string mytime = "02:14:26";Как вычесть из этой даты 3 часа, с учетом переноса дня\месяца\года, с учетом количества дней в месяце\годе и записать результат назад в формате string?
C++ Из 10 книг найти книгу с именем "programmmg" http://www.cyberforum.ru/cpp-beginners/thread1095534.html
Надо из 10 книг найти книгу с именем "programmmg" ,вроде по дате и автору. в поиске после return , (for) требует объявления, пробовал много вариантов, но все равно не получается) пожалуйста помогите. #include <iostream> #include <conio.h> #include <string.h> #include <stdio.h> using std::cout; using std::cin;
C++ Переделать структуру в класс Здравствуйте, помогите переделать структуру в класс..сам пробовал, бред получается:( #include<iostream> #include<conio.h> using namespace std; //Организация стека в виде однонаправленного списка struct element{ public: float x,y;//элементы стека element *prev;//указатель на предшествующий элемент подробнее

Показать сообщение отдельно
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,333
Завершенные тесты: 1
13.02.2014, 09:17     Вызовется ли приватный деструктор?
Цитата Сообщение от programina Посмотреть сообщение
И как в С++ можно узнать, освободилась ли память после завершения программы?
Да, интересно. В данном случае он не вызывается. Проверить можно еще и вот так:
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
#include <iostream.h>
 
class A
{
private:
    static A * a;
 
    A()
    {
        cout << "Constructor A" << endl;
        // ...
    }
    ~A()
    {
        cout << "Destructor A" << endl;
        this->x = NULL; // !
        delete a; /// ???
        a = NULL;
    }
 
public:
    int x;
 
    static A * foo(int _x)
    {
        a = new A();
        a->x = _x;
        return a;
    }
};
 
A * A::a = NULL;
 
int *func()
{
return &( A::foo(4)->x );
}
 
 
int main()
{
   //A *a = A::foo(7);
   //cout << a->x << endl;
   int *adr = func();
   cout << "A::x=" << *adr << endl;
}
kventin_zhuk прав:
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
#include <iostream.h>
 
class A
{
private:
    static A * a;
 
    A()
    {
        cout << "Constructor A" << endl;
        // ...
    }
    ~A()
    {
        cout << "Destructor A" << endl;
    }
 
public:
    int x;
 
    static A * foo(int _x)
    {
        a = new A();
        a->x = _x;
        return a;
    }
 
    static bool Del()
    {
        if (a != NULL)
        {
            delete a;
            a = NULL;
            return true;
        }
        return false;
    }
};
 
A * A::a = NULL;
 
int *func()
{
return &( A::foo(4)->x );
}
 
 
int main()
{
   //A *a = A::foo(7);
   //cout << a->x << endl;
   int *adr = func();
   cout << "A::x=" << *adr << endl;
 
   cout << A::Del() << endl;
 
   cout << "A::x=" << *adr << endl;
}
 
Текущее время: 16:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru