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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
swe-4a
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 15
#1

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

16.04.2013, 22:20. Просмотров 900. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2013, 22:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание и разрушение объектов класса, исследование вызовов конструкторов и деструкторов (C++):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
16.04.2013, 22:33 #2
В вашем примере деструктор, возможно, вообще не требуется, так как указатели получают адреса литералов, у которых статический класс памяти, а уж они с помощью delete не удаляются
swe-4a
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 15
16.04.2013, 22:41  [ТС] #3
в задании обязательное условие исследование вызовов деструктора.... программа компелируется, но выдает ошибку ''debug assertion failed...''
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
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 поставил?
swe-4a
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 15
16.04.2013, 22:55  [ТС] #5
Спасибо, поняла.
ViktorKozlov
133 / 125 / 2
Регистрация: 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;
}
swe-4a
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 15
16.04.2013, 23:09  [ТС] #7
ого, через ''this'' я даже пока не рассматривала...я просто еще до этого не дошла, за код огромное спасибо выглядит куда лучше моего))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2013, 23:09
Привет! Вот еще темы с ответами:

Наследование - вызов конструкторов и деструкторов - C++
Делаю два класса - предок и потомок: class class_1_type { private: int t; public: class_1_type(int t_) { t = t_; cout &lt;&lt;...

Порядок вызова конструкторов при присваивании объектов одного класса - C++
Имеется код ниже. Wein dres = rom; Где dres и rom объекты класса Wein. Класс Wein имеет все конструкторы по умолчанию....

Ошибки в программе с использованием конструкторов/деструкторов - C++
Приветы Есть код: #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;stdlib.h&gt;

Вызов конструкторов/деструкторов при наследовании - C++
Объясните пожалуйста, как получается вывод на экран 2531 #include &lt;iostream&gt; class A { public: A(int n = 2) : m_i(n) {...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.04.2013, 23:09
Ответ Создать тему
Опции темы

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