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

"Повторная" инициализация объекта - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задачка http://www.cyberforum.ru/cpp-beginners/thread445171.html
Здравствуйте, есть задачка: "Вводится строка, потом вводится символ. Далее нужно в строке убрать все эти символы, и сместить строку на кол-во убранных символов" Так вот, проблема если написать больше 3 одинаковых символов подряд, 1 остаётся. Чем больше одинаковых символов, то их больше и остаётся. Прошу у вас помощи. int size = 20; char *str = new char;
C++ C++ as WebServer Всем привет. Накодил какого-то бреда на Си, который создаёт .htm файл с javascript'ом и canvas. Такой вот костыльный метод - влом было вспоминать WinAPI и тем более - изучать, как там рисуется всё в Linux'е (это явно OpenGL, а там плохо). Костыли костылями, но вот подумал - почему нельзя всё это завести на сервере, каким-то образом происходит запрос, мы создаём файлик, куда пихаем весь html... http://www.cyberforum.ru/cpp-beginners/thread445168.html
переведите с Паскаля на си++ пожалуйста! C++
в Паскале получается...а в СИ++ нет( procedure Mean(x,y:real; var AMean,GMean:real); begin AMean:=(x+y)/2; GMean:=sqrt(x * y); end; var a,b,c,d,am,gm:real; begin write('Введите A: '); readln(a); write('Введите B: '); readln(b);
C++ Рекурсия-Советы или Трюки
привет у меня скоро экзамен я хотел спросить как лучше всего отслеживать рекурсию или её запиывать или вообще любую функции,все советы хороши
C++ Находим сверхпростое число http://www.cyberforum.ru/cpp-beginners/thread445154.html
Пожалуйста помогите с проблемой. Никак не могу понять, что не так. Вообщем суть в том, что сверхпростое число - это не только простое число, но у этого простого числа индекс тоже простой. Например число 2 - простое, оно первое в списке простых чисел, но цыфра один - непростое. Значит это не сверхпростое число. Цыфра 3 - простое, и вторая в списке сверхпростых чисел, а двойка в свою очередь тоже...
C++ Бинарные файлы Есть 2 текстовых файла .В первом информации представлена в след виде:номер и ФИО,во втором номер Группы,и оценки по предметам.Так мне нужно присоединить фамилию из первого присоеденить к ведомости второго файла с формированием нового бин файла.я пока сделал только это: #include <iostream> #include <fstream> #include <string.h> using namespace std; struct studfam { int number; char fam;... подробнее

Показать сообщение отдельно
Red Planet
 Аватар для Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263
19.02.2012, 14:12  [ТС]     "Повторная" инициализация объекта
Очень удивился, когда увидел, что деструктор вызывается после вызова второго конструктора, а не до. Ведь логичнее было бы разрушить старый объект перед созданием нового, а здесь получается, что сначала имеем один объект, потом реинициализиреум его поля, потом вызываем деструктор, потом работаем с новымыми значениеями полей. Почему в таком странном порядке идет работа? Ладно еще, если не используем динамическую память (хотя зачем нам деструктор без нее?), - тогда внешне все в порядке. А вот если попробовать вызвать a1.show() после второй инициализации, то сначала вместо значения, хранящегося в p получим какое-то произвольное число, а потом вылетит исключение.

Ниже вывод программы и код.

Вывод.

Created
10 10
Other values
Created
Deleted
100 100
Для продолжения нажмите любую клавишу . . .
Код без указателя.

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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
class A {
    int x, y;
    public: A() { x = y = -1; cout << "Created default" << endl; }
            A(int xx, int yy) { x = xx; y = yy; cout << "Created" << endl; }
            ~A() { cout << "Deleted" << endl; }
            void show() { std::cout << x << " " << y << endl; } 
 
};
 
 
int _tmain(int argc, _TCHAR* argv[]) {
    A a1 = A(10, 10);
    a1.show();
    cout << "Other values" << endl;
    a1 = A(100, 100);
    a1.show();
    system("pause");
    return 0;
}
Код с указателем.

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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
class A {
    int x, y, *p;
    public: A() { x = y = -1; p = new int(100); cout << "Created default" << endl; }
            A(int xx, int yy) { x = xx; y = yy; p = new int(100); cout << "Created" << endl; }
            ~A() { delete p; cout << "Deleted" << endl; }
            void show() { std::cout << x << " " << y << " " << *p << endl; } 
 
};
 
 
int _tmain(int argc, _TCHAR* argv[]) {
    A a1 = A(10, 10);
    a1.show();
    cout << "Other values" << endl;
    a1 = A(100, 100);
    a1.show();
    system("pause");
    return 0;
}
 
Текущее время: 20:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru