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

Деструкторы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не могу понять как написать в switch - если значение не действительно http://www.cyberforum.ru/cpp-beginners/thread657405.html
Не могу понять как написать в switch statement "Error - the day you entered is not valid". Стоит задача: Написать программу, которая запрашивает значение месяца и дня. Принимает значения месяца - от 1 до 12. День от 1 до 28 должен приниматься для февраля (2). День от 1 до 30 должен приниматься для 4, 6, 9 и 11. День от 1 до 31 должен приниматься для всех остальных. Требование:...
C++ Обработка символьной информации.Гороскоп Прошу помощи с решением задачи.Буду очень благодарен. Суть такова-при вводе года(любой комбинации чисел), программа должна выдавать цвет и животное этого года. #include <iostream.h> #include <math.h> main() { char colors = {"green", "red", "yellow", "white", "black"}; char animals = {"rat", "bull", "cock", "tiger", "rabbit", "dragon", "boar", "snake", "horse", "sheep", "monkey", "dog"};... http://www.cyberforum.ru/cpp-beginners/thread657403.html
Разложение числа на простые множители (упрощенная). Зацикливание? C++
Добрый вечер. Написал небольшой код для разложения небольших чисел на простые цифры. По умолчанию число, которое подается на ввод, делится на простые цифры (никаких 13, 17 и проч.). Если нужно, несколько раз повторяется деление путем изменения переменной цикла while. Но программа не работает даже если ввести число 10. Выводится 2 и все. Хотя должно вывести 25. Если ввести 100, то выводит 2 2 и...
C++ С чего всё начиналось.(или первые программы)
Здравствуйте уважаемые программисты, хотелось бы узнать, кто с чего начинал программировать, каков был первый опыт, сколько сил ушло на написание первых программ и какие именно это были программы. Сам я начинающий программист, данным постом хочу подчерпнуть для себя идеи и просто полюбопытствовать) Заранее благодарен за ответы.)
C++ Внешний интерфейс http://www.cyberforum.ru/cpp-beginners/thread657393.html
Здравствуйте, помогите сделать внешний интерфейс по задаче "Все четные элементы целочисленного массива К поместить в массив 1, а нечетные — в массив 2. Подсчитать количество тех и других." #include <iostream.h> #include <iomanip.h> #include <conio.h> main() { int n,ch,nech; system("chcp 1251"); system("cls");
C++ Описание класса Подскажете как сделать задание, а то это ппц, ничего не выходит, кучу всякого перечитал, примеры ставил... плз хелп Значение строки (заглавные буквы), конструктор по умолчанию с введением строки, методы переворачивания строки, вывод количества символа 'А', вставки в строку через каждые пять символов символа '+', вывода строки (перегрузка операции <<) вышел вывод букв через каждые 5 ставится +... подробнее

Показать сообщение отдельно
DJames-
0 / 0 / 0
Регистрация: 02.09.2012
Сообщений: 12

Деструкторы - C++

24.09.2012, 21:20. Просмотров 435. Ответов 3
Метки (Все метки)

Всем доброго времени суток! Возникли некоторые непонятки с деструкторами, а точнее их время вызова и механизм работы.

Вот код:

#include <iostream.h>
#include <conio.h>

class String
{
public:
String();
String(char*);
~String();

friend ostream &operator<<(ostream &,String );
friend istream &operator>>(istream &,String &);
private:
char* ln;
int sizeln;
};

String::String()
{
ln = new char [256];
sizeln = 256;
cout << "Empty Constructor called!" << endl;
}
String::String(char *sPtr)
{
sizeln = strlen(sPtr);
ln = new char [sizeln];
ln = sPtr;
cout << "Constructor with parameters called!" << endl;
}
String::~String()
{
delete [] ln;
cout << "Destructor called!" << endl;
}
ostream &operator<<(ostream &out,String s1)
{
out << s1.ln << endl;

return out;
}
istream &operator>>(istream &in,String &s)
{
in.getline(s.ln,256);
s.sizeln = strlen(s.ln);

return in;
}

main()
{
String s1 = "Operators"; //Constructor with parameters called
String s2 = "on cpp"; //Constructor with parameters called
String s3,s4; //Empty Constructor called

cout << s1 << s2; //two destructors called

cin >> s3 >> s4;

cout << s3 << s4; //two destructors called

getch();

return 0;
}
//all destructors called

Непонятно почему при команде cout вызывается деструктор, хотя строка не обнуляеться.
И вообще хотелось бы услышать общую оценку о программе. Мне кажется что я неправильно использую операторы new и delete и деструкторы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru