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

Не знаю как исправить ошыбку в коде - C++

Восстановить пароль Регистрация
 
Оксана 1234
 Аватар для Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 158
31.10.2013, 01:12     Не знаю как исправить ошыбку в коде #1
Ошыбка, наверное, в том что я в классе roslunu описываю ф-ию get_name, где пам'ять под name выделена динамически, а в следующих классах статически. Мне об'язательно нужно использовать char.Ребята, помогите пожалуйста, буду очень благодарна. Я в тупике. На фотке ошыбка которую мне выбивает компилятор.

Описание класса
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
#ifndef flower_h_
#define flower_h_
 
 
#include<iostream>
#include <string>
using namespace std;
 
class roslunu
{public:
    char*name;
    roslunu()
    {
        name=new char[12];
        strcpy(name,"Rose");
    }
virtual ~roslunu(){delete name;}
virtual void get_name(){cout<<"Name "<<name;}
 
};
 
 
class flower:public roslunu
{public:
char*color;
flower(char*d="Red"){color=new char[12]; color=d;}
virtual ~flower(){delete color;}
void get_name(){strcpy(name,"Margarite"); cout<<"\nName "<<name;};
 
};
 
class number_stebel:public flower
{public:
    int number_steb;
    number_stebel(){ number_steb=2;}
void get_name(){strcpy(name,"Aister"); cout<<"\nName "<<name;}
 
};
 
class number_lustkiv:protected flower
{public:
    int number_lust;
    number_lustkiv(){number_lust=4;}
};
 
 
#endif
main
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
#include "flower.h"
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <cctype>
FILE*uf;
 
using namespace std;
 
void main()
{
roslunu a_1; roslunu* a_1r;
flower a_2; 
number_stebel a_3; 
number_lustkiv a_4;
cout<<" Name:"<<a_1.name<<endl;
cout<<" Name:"<<a_2.name<<" Color:"<<a_2.color<<endl;
cout<<" Name:"<<a_3.name<<" Color:"<<a_3.color<<" K-st stebel: "<<a_3.number_steb<<endl;
cout<<" K-st lustkiv: "<<a_4.number_lust<<endl;
 
cout<<" Robota polimorfizmy\n";
a_1r=&a_1;
a_1r->get_name();
a_1r=&a_2;
a_1r->get_name();
a_1r=&a_3;
a_1r->get_name();
 
cout<<endl;
 
}
Миниатюры
Не знаю как исправить ошыбку в коде  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.10.2013, 01:58     Не знаю как исправить ошыбку в коде #2
C++
1
2
3
4
5
6
7
8
class flower:public roslunu
{public:
char*color;
flower(char*d = "Red"){color = new char[12]; strcpy(color, d);}
virtual ~flower(){delete color;}
void get_name(){strcpy(name,"Margarite"); cout<<"\nName "<<name;};
 
};
Оксана 1234
 Аватар для Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 158
31.10.2013, 02:02  [ТС]     Не знаю как исправить ошыбку в коде #3
Спасибо
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,397
31.10.2013, 02:36     Не знаю как исправить ошыбку в коде #4
тут UB, память выделяете new[], а очищаете delete. Надо delete[]
Цитата Сообщение от Оксана 1234 Посмотреть сообщение
исправить ошыбку в коде
надо бы хоть в заголовке ошибку исправить. Жи-ши ...
Yandex
Объявления
31.10.2013, 02:36     Не знаю как исправить ошыбку в коде
Ответ Создать тему
Опции темы

Текущее время: 08:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru