Форум программистов, компьютерный форум 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;... подробнее

Показать сообщение отдельно
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
19.02.2012, 15:38     "Повторная" инициализация объекта
Пояснения:
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
int main()
{
    // Здесь, по идее, происходит два действия: сначала конструктор с
    // параметрами конструирует временный объект, который затем с помощью
    // конструктора копии копируется в объект a1. Доказать это просто -
    // достаточно поместить конструктор копии в приватную область, и код не
    // скомпилируется. Однако все эти промежуточные действия соверщенно не
    // нужны, и компилятор выкидывает их, оставляя конструирование объекта a1
    // сразу с помощью конструктора с параметрами, т.е. код становится
    // эквивалентен A a1(10, 10);
    A a1 = A(10, 10); // Вывод "Created"
    
    a1.show(); // Вывод "10 10 100"
    cout << "Other values" << endl;
    
    // Следующую строку можно разделить на три:
        // Воспринимаем __tmp как временный объект.
        // A __tmp(100, 100); // Вывод "Created"
        
        // Копируем временный объект в a1
        // a1.operator=(__tmp);
        
        // Воспринимаем эту строку как полное удаление временного
        // объекта, а не простой вызов деструктора. Сути это, однако,
        // не меняет, нам было важно то, что для временного объекта
        // вызвался деструктор.
        // __tmp.~A(); // Вывод "Deleted"
    // Благодаря тому, что оператор присваивания не был реализован,
    // использовался предоставляемый по умолчанию оператор присваивания,
    // побайтно копирующий данные из одного объекта в другой. Т.е. был
    // скопирован сам указатель из __tmp, а не его значение. Затем, после
    // копирования __tmp удаляется и, соответственно, память, на которую теперь
    // указывает как __tmp.p, так и a1.p, становится невалидной. Ну а дальше
    // всё ясно, при обращении к невалидной памяти получаем дулю.
    a1 = A(100, 100); // Вывод "Created"; Вывод "Deleted"
    
    a1.show(); // Вывод "100 100 абырвалг"
    
    // Вывод " Deleted"
    return 0;
}
 
Текущее время: 07:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru