Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 15
1

Создание и разрушение объектов класса, исследование вызовов конструкторов и деструкторов

16.04.2013, 22:20. Просмотров 2060. Ответов 6
Метки нет (Все метки)

Здравствуйте! Проверте пожалуйста код и подскажите мои ошибки. Согласно теме необходимо разобрать класс библиотека(имя – char*, автор – char*,стоимость – float)
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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
// начало объявления класса
class biblioteka // имя класса
{
public: // спецификатор доступа
char* name;
char* avtor;
float stoimost;
void message() // функция (метод класса) выводящая сообщение на экран
{
cout << "name: " << name << endl;
cout << "avtor: " << avtor << endl;
cout << "stoimost: " << stoimost << endl ;
 
}
~biblioteka()
{
delete name;
delete avtor;
};
}; // конец объявления класса
 
int main( )
{
setlocale(LC_CTYPE,"Russian");
 
biblioteka pervay;
 
pervay.name="Живая шляпа";
pervay.avtor="Носов";
pervay.stoimost=99;
 
 
biblioteka objMessage; // объявление объекта
pervay.message(); // вызов функции класса message
 
 system("pause");
 
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2013, 22:20
Ответы с готовыми решениями:

Классы и обьекты в С++. Выполнить исследование вызовов конструкторов и деструкторов
Написать программу, в которой создаются и разрушаются обьекты, определенного пользователем класса....

Разработка классов, создание конструкторов и деструкторов
Здравствуйте, помогите решить следующее задание: Постpоить класс для pаботы со cтpоками. Класс...

Создание и разрушение объектов
помогите пожалуйста в проблемке- Написать программу, в которой создаются и разрушаются объекты,...

Создание и разрушение экземпляров класса
Здравствуйте. Мне нужно разработать программу на c ++ Builder в которой на основе структур,...

6
136 / 128 / 59
Регистрация: 13.12.2012
Сообщений: 293
16.04.2013, 22:33 2
В вашем примере деструктор, возможно, вообще не требуется, так как указатели получают адреса литералов, у которых статический класс памяти, а уж они с помощью delete не удаляются
0
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 15
16.04.2013, 22:41  [ТС] 3
в задании обязательное условие исследование вызовов деструктора.... программа компелируется, но выдает ошибку ''debug assertion failed...''
0
Каратель
Эксперт С++
6594 / 4015 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
16.04.2013, 22:49 4
Цитата Сообщение от swe-4a Посмотреть сообщение
в задании обязательное условие исследование вызовов деструктора.
ну дык и напиши деструктор
C++
1
2
3
4
~biblioteka()
{
    cout << "destructor" << endl;
}
Цитата Сообщение от swe-4a Посмотреть сообщение
~biblioteka()
{
delete name;
delete avtor;
};
ты память под строки выделял? нет? а зачем delete поставил?
1
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 15
16.04.2013, 22:55  [ТС] 5
Спасибо, поняла.
0
136 / 128 / 59
Регистрация: 13.12.2012
Сообщений: 293
16.04.2013, 23:02 6
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
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
// начало объявления класса
class biblioteka // имя класса
{
public: // спецификатор доступа
biblioteka(char* name, char* avtor, float stoimost)
    {
        this->name=new char[strlen(name)+1];
        this->avtor=new char[strlen(avtor)+1];
        this->stoimost=stoimost;
        strcpy(this->name,name);
        strcpy(this->avtor,avtor);
    }
private:
char* name;
char* avtor;
float stoimost;
public:
void message() // функция (метод класса) выводящая сообщение на экран
{
cout << "name: " << name << endl;
cout << "avtor: " << avtor << endl;
cout << "stoimost: " << stoimost << endl ;
 
}
public:
~biblioteka()
{
delete[] name;
delete[] avtor;
}
}; // конец объявления класса
 
int main( )
{
setlocale(LC_CTYPE,"Russian");
 
biblioteka objMessage("Живая шляпа","Носов",99);  // объявление объекта
 
objMessage.message(); // вызов функции класса message
 
 system("pause");
 
return 0;
}
1
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 15
16.04.2013, 23:09  [ТС] 7
ого, через ''this'' я даже пока не рассматривала...я просто еще до этого не дошла, за код огромное спасибо выглядит куда лучше моего))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2013, 23:09

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Использование конструкторов и деструкторов
Решить задачу в консольном режиме Даны целые числа K, N и набор из N целых чисел. Если в наборе...

Использование конструкторов и деструкторов
Решить в консольном режиме: Дан набор из N вещественных чисел. Проверить, образует ли данный набор...

Задание с использованием конструкторов и деструкторов
Нужна ваша помощь. Само задание: Разработать класс - СТУДЕНТ. В закрытой части определить данные:...

Правильное использование конструкторов и деструкторов
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; class Worker...

Наследование - вызов конструкторов и деструкторов
Делаю два класса - предок и потомок: class class_1_type { private: int t; public: ...

Порядок вызова конструкторов/деструкторов
Вопрос чисто теоретический. Попробую сформулировать, не ругайте если получится коряво. Например,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.