Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130

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

27.10.2014, 18:10. Показов 2067. Ответов 18
Метки нет (Все метки)

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

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
49
50
#include <stdio.h>
#include <string.h>
 
class Car {
protected:
    char *    lpName;
    int        nHp;
    float    fPrice;
 
public:
    Car( char * pName = NULL, int hp = 0, float price = 0.0 ) {
        if ( pName ) {
            lpName = new char[strlen(pName)];
            strcpy_s( lpName, strlen(pName), pName );
        }
        else
            lpName = NULL;
        nHp = hp;
        fPrice = price;
    }
 
    ~Car() {
        if ( lpName ) {
            delete lpName;
        }
    }
 
    char*    GetName() {return lpName;};
    int        GetPower() {return nHp;};
    float    GetPrice() {return fPrice;};
 
    void    SetName( char * pName ) {
                if ( lpName )
                    delete lpName;
                lpName = new char[strlen(pName)];
                strcpy( lpName, pName );
            }
    void    SetPower( int n ) {nHp = n;}
    void    SetPrice( float price ) {fPrice = price;}
};
 
int main(int argc, char* argv[])
{
    Car* car = new Car();
    Car* car2 = new Car("VAZZ", 72, 5000.0 );
 
    delete car;
    delete car2;
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.10.2014, 18:10
Ответы с готовыми решениями:

Создание и разрушение объектов класса, исследование вызовов конструкторов и деструкторов
Здравствуйте! Проверте пожалуйста код и подскажите мои ошибки. Согласно теме необходимо разобрать класс библиотека(имя – char*, автор –...

Разрушение объектов при наследовании
Привожу код, вопрос после описания #include &lt;iostream&gt; using namespace std; class A { public: A()

Разрушение окна
Программа с использованием opengl и windows forms.После закрытия окна в диспетчере продолжает висеть процесс и в студио пишет что я не...

18
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
27.10.2014, 18:23
Цитата Сообщение от АЛЕКСЕЙ_92 Посмотреть сообщение
вроде бы все правильно а программа не запускается..
1. какая ошибка?
2. почему код не обрамлен тегами?
3.
C++
1
 lpName = new char[strlen(pName)]; // нужно выделять на 1 символ больше
1
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
27.10.2014, 18:51  [ТС]
1>.\Debug\LAB1.exe.intermediate.manifes t : general error c1010070: Failed to load and parse the manifest. 5 C405BAO =09B8 C:070==K9 D09;.
1>Журнал построения был сохранен в "file://c:\Users\User\Documents\Visual Studio 2008\Projects\LAB1\LAB1\Debug\BuildLog.h tm"
1>LAB1 - ошибок 1, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
27.10.2014, 19:04
При компиляции здесь нет ошибок. При запуске - ошибка. Почему - Tulosba, написал.
Миниатюры
Создание и разрушение объектов  
1
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
02.11.2014, 12:21  [ТС]
ну и что делать?подскажите пожалуйста
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
02.11.2014, 15:31
Цитата Сообщение от АЛЕКСЕЙ_92 Посмотреть сообщение
ну и что делать?подскажите пожалуйста
...
Цитата Сообщение от Tulosba Посмотреть сообщение
lpName = new char[strlen(pName)]; // нужно выделять на 1 символ больше
1
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
02.11.2014, 16:15  [ТС]
ребят,ну не пойму что значит нужно выделять на 1 символ?
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
02.11.2014, 16:20
Цитата Сообщение от АЛЕКСЕЙ_92 Посмотреть сообщение
что значит нужно выделять на 1 символ?
Выделять памяти на один символ больше, чем количество символов в pName (то, что выдаёт strlen(pName)), чтобы было место под '\0',
Т.е.:
C++
1
lpName = new char[strlen(pName) + 1];
0
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
02.11.2014, 16:32  [ТС]
ну вставил,но все равно ошибку выдает-что то не так...

Добавлено через 10 минут
в чем лучше-vs2008 C++ или Dev C++??
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
02.11.2014, 16:34
Цитата Сообщение от АЛЕКСЕЙ_92 Посмотреть сообщение
,но все равно
Всё равно, не всё равно... Я твой код не вижу, где и что ты вставил, только тебе известно. Если ошибка, то нужно писать какая, ясновидящих тут нет.
0
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
02.11.2014, 16:38  [ТС]
1>------ Перестроение всех файлов начато: проект: LAB1, Конфигурация: Debug Win32 ------
1>Удаление промежуточных и выходных файлов проекта "LAB1", конфигурации "Debug|Win32"
1>Внедрение манифеста...
1>.\Debug\LAB1.exe.intermediate.manifes t : general error c1010070: Failed to load and parse the manifest. 5 C405BAO =09B8 C:070==K9 D09;.
1>Журнал построения был сохранен в "file://c:\Users\User\Documents\Visual Studio 2008\Projects\LAB1\LAB1\Debug\BuildLog.h tm"
1>LAB1 - ошибок 1, предупреждений 0
========== Перестроение всех: успешно: 0, с ошибками: 1, пропущено: 0 ==========

Добавлено через 1 минуту
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
49
50
#include <stdio.h>
#include <string.h>
 
class Car {
protected:
char * lpName;
int nHp;
float fPrice;
 
public:
Car( char * pName = NULL, int hp = 0, float price = 0.0 ) {
if ( pName ) {
lpName = new char[strlen(pName) + 1];
strcpy_s( lpName, strlen(pName), pName );
}
else
lpName = NULL;
nHp = hp;
fPrice = price;
}
 
~Car() {
if ( lpName ) {
delete lpName;
}
}
 
char* GetName() {return lpName;};
int GetPower() {return nHp;};
float GetPrice() {return fPrice;};
 
void SetName( char * pName ) {
if ( lpName )
delete lpName;
lpName = new char[strlen(pName)+ 1];
strcpy( lpName, pName );
}
void SetPower( int n ) {nHp = n;}
void SetPrice( float price ) {fPrice = price;}
};
 
int main(int argc, char* argv[])
{
Car* car = new Car();
Car* car2 = new Car("VAZZ", 72, 5000.0 );
 
delete car;
delete car2;
return 0;
}
Добавлено через 39 секунд
заменил в двух местах как показали +1 поставил
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
02.11.2014, 16:49
Код в теги оформляй. Правка, выдели код и нажми С++.

Добавлено через 7 минут
Вот эту функцию знаешь: strcpy_s(), что применяешь её?
1
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
02.11.2014, 16:56  [ТС]
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
49
50
#include <stdio.h>
#include <string.h>
 
class Car {
protected:
char * lpName;
int nHp;
float fPrice;
 
public:
Car( char * pName = NULL, int hp = 0, float price = 0.0 ) {
if ( pName ) {
lpName = new char[strlen(pName) + 1];
strcpy_s( lpName, strlen(pName), pName );
}
else
lpName = NULL;
nHp = hp;
fPrice = price;
}
 
~Car() {
if ( lpName ) {
delete lpName;
}
}
 
char* GetName() {return lpName;};
int GetPower() {return nHp;};
float GetPrice() {return fPrice;};
 
void SetName( char * pName ) {
if ( lpName )
delete lpName;
lpName = new char[strlen(pName)+ 1];
strcpy( lpName, pName );
}
void SetPower( int n ) {nHp = n;}
void SetPrice( float price ) {fPrice = price;}
};
 
int main(int argc, char* argv[])
{
Car* car = new Car();
Car* car2 = new Car("VAZZ", 72, 5000.0 );
 
delete car;
delete car2;
return 0;
}
Добавлено через 5 минут
позволяют каким-то по счету параметром вводить кол-во элементов,ну функция чисто VS C++
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
02.11.2014, 16:59
Цитата Сообщение от АЛЕКСЕЙ_92 Посмотреть сообщение
ну функция чисто VS C++
Мой тебе совет: не используй нестандарт. Сделай, как в 36 строке.
А вот эта ошибка:
1>.\Debug\LAB1.exe.intermediate.manifes t : general error c1010070: Failed to load and parse the manifest. 5 C405BAO =09B8 C:070==K9 D09;.
это ошибка не по коду.
0
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
02.11.2014, 17:02  [ТС]
что значит ошибка не по коду-надо программу менять?
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
02.11.2014, 17:08
Цитата Сообщение от АЛЕКСЕЙ_92 Посмотреть сообщение
что значит ошибка не по коду
Это значит, что в коде нет ошибок. При компиляции нет, и при работе нет.
Миниатюры
Создание и разрушение объектов  
0
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
02.11.2014, 18:05  [ТС]
ну и что теперь делать посоветуете?
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
02.11.2014, 18:26
Цитата Сообщение от АЛЕКСЕЙ_92 Посмотреть сообщение
ну и что теперь делать посоветуете?
Искать причину ошибки. Создавайте тему по этой ошибке, ищите в инете.
0
3 / 3 / 0
Регистрация: 01.06.2014
Сообщений: 130
02.11.2014, 18:45  [ТС]
все,спасибо нашел))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.11.2014, 18:45
Помогаю со студенческими работами здесь

Разрушение стека около локальной переменной
В функции имеется такая строка char target=&quot;&quot;; Все работает хорошо, но при выходе из подпрограммы пишет &quot;Stack around the variable...

Возможно ли явное разрушение объекта класса?
Код (класс матрицы) #include &lt;iostream&gt; #include &lt;assert.h&gt; using namespace std; class MATRIX_us{ private://V int...

Создание объектов
Здравтсвуйте! Хочу спросить, почему лучше пользоваться указателем на объект (при ООП) Animals *cat = new Animals() и дальше обращаться...

Создание объектов в окне
Я хочу узнать как создавать компоненты на будущем окне программы.Но именно в C++,а не в Visual C++! То есть например: как создать...

Создание классов и объектов
Написать программу создания класса. File: Имя файла, Размер, Дата создания, Количество обращений. Определить возможно ли записать файл на...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 19.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru