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

Ошибка в программе - C++

Восстановить пароль Регистрация
 
Оксана 1234
 Аватар для Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 158
07.11.2013, 02:23     Ошибка в программе #1
Проблема в сортировке, не совсем понимаю как реализовать. Тем более не знаю где инициализировать нулем count

1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication2\consoleapplication2\class_m.h(46): error C2563: несоответствие в списке формальных параметров
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication2\consoleapplication2\class_m.h(47): error C2563: несоответствие в списке формальных параметров
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication2\consoleapplication2\class_m.h(49): error C2563: несоответствие в списке формальных параметров
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication2\consoleapplication2\class_m.h(49): error C2298: return: недопустимая операция с указателем на выражение функции-члена
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication2\consoleapplication2\main.cpp(20): error C2228: выражение слева от ".Get_Num" должно представлять класс, структуру или объединение

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
# include "class_m.h"
# include <iostream>
 
using namespace std;
 
void main()
{
    interface_1 *A[5];
    A[0]=new last ("Magnolia");
    A[1]=new last("Rose");
    A[2]=new last("Margarite");
    A[3]=new last("Aistr");
    A[4]=new last("Gvozduka");
        interface_1 *Rez= new last() ;
    for(int i = 0; i < 5; i++)
    {
        for( int j = 1; j < 5; j++)
        {
            if( A[j].Get_Num() < A[j-1].Get_Num())
            {
                Rez = A[j];
                A[j] = A[j-1];
                A[j-1] = Rez;
            }
        }
 
}
class
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
51
52
53
54
# ifndef class_m_h
# define class_m_h
 
# include <string>
# include <iostream>
 
using namespace std;
 
class interface_1
{
public:
    virtual int Get_Num() = 0; 
    virtual int Get_Count() = 0;
};
 
 
 
class flower
{
public:
    int number;
    char *color;
    char *name;
 
    flower()
    {
        number = 6; 
        name = new char[20]; 
        strcpy(name,"Romashka"); 
        color = new char[20]; 
        strcpy(color, "Biluy");
    };
    
    ~flower()
    {cout<<"Robota destructora";
    delete []color;
    delete []name;
    };
    
};
 
 
class last : public flower, public interface_1
{public:
    int num;
    last() : flower(){ num = ++count;}
    last(char* o) { strcpy(name, o); num = ++count;}
    ~last() { }
    int Get_Count(){ return count;}
    int Get_Num(){ return num;}
    
};
 
# endif
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2013, 02:23     Ошибка в программе
Посмотрите здесь:

C++ Ошибка в программе
C++ Ошибка в программе
C++ Ошибка в программе
C++ Ошибка в программе
Ошибка в программе C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
07.11.2013, 04:19     Ошибка в программе #2
C++
1
2
3
4
5
6
7
8
9
10
class last : public flower, public interface_1
{public:
    int num;
    last() : flower(){ num = ++count/*(???)*/;} 
    last(char* o) { strcpy(name, o); num = ++count/*(???)*/;}
    ~last() { }
    int Get_Count(){ return count/*(???)*/;}
    int Get_Num(){ return num;}
    
};
Оксана 1234
 Аватар для Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 158
07.11.2013, 20:46  [ТС]     Ошибка в программе #3
Проблема в сортировке( программа проходит, но ничего полезного не делает), ее, мне так кажется надо реализовать с помощью адресов, предыдущую ошибку с count я уже исправила. Буду благодарна за все ваши советы.

class
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# ifndef class_m_h
# define class_m_h
 
# include <string>
# include <iostream>
 
using namespace std;
 
static int count = 0;
 
class interface_1
{
public:
    virtual int Get_Num() = 0; 
    virtual int Get_Count() = 0;
};
 
 
 
class flower
{
public:
    int number;
    char *color;
    char *name;
 
    flower()
    {
        number = 6; 
        name = new char[20]; 
        strcpy(name,"Romashka"); 
        color = new char[20]; 
        strcpy(color, "Biluy");
    };
    
    ~flower()
    {cout<<"Robota destructora";
    delete []color;
    delete []name;
    };
    
};
 
 
 
class last : public flower, public interface_1
{public:
    
    int num;
    last() : flower(){ num = ++count;}
    last(char* o) { strcpy(name, o); num = ++count;}
    ~last() { }
    int Get_Count(){ return count;}
    int Get_Num(){ return num;}
    friend ostream& operator <<(ostream& out, last& C)
    {
        return out << "\n\Name = " << C.name ;
    }
    
    last& operator = (last& C)
    {
        
        if(C.name)
        {
            name = new char [strlen(C.name)+1];
            strcpy (name, C.name);
        }
        else name = 0;
 
    
    };
};
 
# 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
# include "class_m.h"
# include <iostream>
 
using namespace std;
 
void main()
{
    interface_1 *A[5];
    A[0]=new last ("Magnolia");
    A[1]=new last("Rose");
    A[2]=new last("Margarite");
    A[3]=new last("Aistr");
    A[4]=new last("Gvozduka");
        interface_1 *Rez= new last() ;
    for(int i = 0; i < 5; i++)
    {
        for( int j = 1; j < 5; j++)
        {
            if( A[j].Get_Num() < A[j-1].Get_Num())
            {
                Rez = A[j];
                A[j] = A[j-1];
                A[j-1] = Rez;
            }
        }
 
}
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
08.11.2013, 22:34     Ошибка в программе #4
Кликните здесь для просмотра всего текста

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
//*.h
# include <string>
# include <iostream>
#include <stdio.h>
#include <tchar.h>
 
using namespace std;
namespace myname
{
    static int count = 0;
}
 
 
class interface_1
{
public:
    virtual int Get_Num() = 0; 
    virtual int Get_Count() = 0;
};
 
class flower
{
public:
    int number;
    char *color;
    char *name;
 
    flower()
    {
        number = 6; 
        name = new char[20]; 
        strcpy(name,"Romashka"); 
        color = new char[20]; 
        strcpy(color, "Biluy");
    };
 
    ~flower()
    {cout<<"Robota destructora";
    delete []color;
    delete []name;
    };
 
};
 
class last : public flower, public interface_1
{
public:
 
    int num;
    last() : flower(){  num = ++myname::count;  }
    last(char* o) { strcpy(name, o); num = ++myname::count;}
    ~last() { }
    int Get_Count(){ return myname::count;}
    int Get_Num(){ return num;}
    friend ostream& operator <<(ostream& out, last& C)
    {
        return out << "\n\Name = " << C.name ;
    }
 
    last& operator = (last& C)
    {
 
        if(C.name)
        {
            name = new char [strlen(C.name)+1];
            strcpy (name, C.name);
        }
        else name = 0;
 
 
    };
};
/////////////////////////////////////////////////////
//*.cpp
int _tmain(int argc, _TCHAR* argv[])
{
    interface_1 *A[5];
    A[0]=new last ("Magnolia");
    A[1]=new last("Rose");
    A[2]=new last("Margarite");
    A[3]=new last("Aistr");
    A[4]=new last("Gvozduka");
    interface_1 *Rez= new last() ;
    for(int i = 0; i < 5; i++)
    {
        for( int j = 1; j < 5; j++)
        {
            if( A[j]->Get_Num() < A[j-1]->Get_Num())
            {
                Rez = A[j];
                A[j] = A[j-1];
                A[j-1] = Rez;
            }
        }
    }
    return 0;
}
 
//========== Перестроение всех: успешно: 1, с ошибками: 0, пропущено: 0 ==========
Оксана 1234
 Аватар для Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 158
10.11.2013, 22:38  [ТС]     Ошибка в программе #5
Большое спасибо, к сожалению у меня долго не было доступа к сети. Хочу вам задать еще один вопрос. Не могли бы вы мне сказать, как после этого вывести масив, по переменной name. Никак немогу это зделать!

Добавлено через 1 минуту
C++
1
2
for(int i=0; i<5; i++)
    {cout<<A[i]<<"\n";}
Когда я делаю так, мне походу адреса выводит.
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
11.11.2013, 00:32     Ошибка в программе #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
void main()
{
   int * A = nullptr;  // указатель на int      
    cout<< "ptr A = "<< A <<" address ptr A = "<< &A<<endl;
 
    A = new int; 
    *A = 100500;
    cout<< "ptr A = "<< A <<" *A = "<< *A<<endl;
 
    int * A2[2] = {0};// массив указателей А2 содержит 2 указателя на переменные типа int 
                      // пока они нулевые
    cout<< "ptr A2 = "<< A2 <<" A2[0] = "<< A2[0]<<" A2[1] = "<< A2[1]<<endl;
 
    A2[0] = new int;    // положим адрес на int в А2[0]
    *(A2[0]) = 1345345; // переменной по адресу находящемуся в A2[0] присвоим  значение
    int x = 45675675;
    A2[1] = &x;         // в A2[1]  - адрес х 
    cout<< "ptr A2 = "<< A2 <<" A2[0] = "<< A2[0]<<"*(A[0])"<<(int)(*A2[0])<<endl;
    cout<< "ptr A2 = "<< A2 <<" A2[0] = "<< A2[1]<<"*(A[1])"<<(int)(*A2[1])<<endl;
    // используя приведение типов А[0]  приравняем к адресу строки, 
    // ( (char *)A2[0] ) - указание cout что надо выводить,  изначально А2 массив указателей на int 
    // соответственно  ( *(A2[1]) )  будет воспринято как int.
    char strch[] =  "rtjghjgnjgnjegnjkgn";
    A2[0] = (int *)strch;
    x = 109090909;
    A2[1] = &x;        
    cout<< "addr A2[0] = "<< &A2[0] <<" A2[0] = "<< A2[0]<<" *(A[0]) = "<<(char *)A2[0]<<endl;
    cout<< "addr A2[1] = "<< &A2[1] <<" A2[1] = "<< A2[1]<<" *(A[0]) = "<<*(A2[1])<<endl;
    // сложим числовые значения 4х символов ,размер int = 4, с х , для разнообразия )
    cout<< "*(A2[0]) + *(A2[1]) = " <<( *( A2[0]) + *( A2[1]) )<<endl;
}
/*   вывод 
    ptr A =  0x0  address ptr A =  0x14fafc 
    ptr A =  0x9e0200  *A =  100500 
    ptr A2 =  0x14fb6c  A2[0] =  0x0  A2[1] =  0x0 
    ptr A2 =  0x14fb6c  A2[0] =  0x9e01f8 *(A[0]) 1345345 
    ptr A2 =  0x14fb6c  A2[0] =  0x14fbbc *(A[1]) 45675675 
    addr A2[0] =  0x14fb6c  A2[0] =  0x14fd6c  *(A[0]) =  rtjghjgnjgnjegnjkgn 
    addr A2[1] =  0x14fb70  A2[1] =  0x14fbbc  *(A[0]) =  109090909 
    *(A2[0]) + *(A2[1]) =  1844120783 */
Оксана 1234
 Аватар для Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 158
11.11.2013, 02:18  [ТС]     Ошибка в программе #7
Море ошибок, даже не представляю как это исправить. Все по сути из-за этого ->
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.cpp(16): error C2819: тип "last" не имеет перегруженный "operator ->"
1> c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\flower.h(45): см. объявление "last"
1> возможно, имеется в виду "."
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.cpp(16): error C2232: ->last::Get_Count: левый операнд имеет тип "class", используйте "."
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.cpp(29): error C2819: тип "interface_1" не имеет перегруженный "operator ->"
1> c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\flower.h(15): см. объявление "interface_1"
1> возможно, имеется в виду "."
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.cpp(29): error C2232: ->interface_1::Get_Num: левый операнд имеет тип "class", используйте "."
1> c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\flower.h(15): см. объявление "interface_1"
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.cpp(31): error C2440: =: невозможно преобразовать "interface_1" в "interface_1 *"
1> Для выполнения данного преобразования нет доступного оператора преобразования, определенного пользователем, или вызов оператора невозможен
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.cpp(33): error C2679: бинарный "=": не найден оператор, принимающий правый операнд типа "interface_1 *" (или приемлемое преобразование отсутствует)
1> c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\flower.h(19): может быть "interface_1 &interface_1::operator =(const interface_1 &)"
1> при попытке сопоставить список аргументов "(interface_1, interface_1 *)"
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
35
36
37
38
39
40
41
42
#include "flower.h"
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <cctype>
FILE*uf;
 
using namespace std;
int main()
{
    last ob_1, ob_2("Hyacinth");
    cout << "k-st objectiv: " << ob_1.Get_Count() << endl;
int count=ob_1->Get_Count();
    cout << "number of object 1 is " << ob_1.Get_Num() << endl;
    cout << "number of object 2 is " << ob_2.Get_Num() << endl;
        interface_1 *A1 ;
        A1=new last ();
        A1[0] = ob_1;
        A1[1] = ob_2;
        interface_1 *Rez= new last() ;
        cout<<"o\n";
         for(int i = 0; i < count; i++)
    {
        for( int j = 1; j < count; j++)
        {
            if( A1[j]->Get_Num() < A1[j-1]->Get_Num())
            {
                Rez = A1[j]; cout<<"o\n";
                A1[j] = A1[j-1];
                A1[j-1] = Rez;
            }
        }
    }
 
for(int i=0; i<count; i++)
    {cout<<"o\n";
        cout<<A1[i].Get_Num()<<"\n";
cout<<"o\n";}
    return 0;}
flower
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# include <string>
# include <iostream>
#include <stdio.h>
#include <tchar.h>
#include <time.h>
 
using namespace std;
namespace myname
{
    static int count = 0;
}
 
 
class interface_1
{
public:
    virtual int Get_Num() = 0; 
    virtual int Get_Count() = 0;
};
 
class flower
{
public:
    int number;
    char *color;
    char *name;
 
    flower()
    {
        number = 6; 
        name = new char[20]; 
        strcpy(name,"Romashka"); 
        color = new char[20]; 
        strcpy(color, "Biluy");
    };
 
    ~flower()
    {cout<<"Robota destructora";
    delete []color;
    delete []name;
    };
 
};
 
class last : public flower, public interface_1
{
public:
 
    int num;
    last() : flower(){  num = ++myname::count;  }
    last(char* o) { strcpy(name, o); num = ++myname::count;}
    ~last() { }
    int Get_Count(){ return myname::count;}
    int Get_Num(){ return num;}
    friend ostream& operator <<(ostream& out, last& C)
    {
        return out << "\n\Name = " << C.name ;
    }
 
    last& operator = (last& C)
    {
 
        if(C.name)
        {
            name = new char [strlen(C.name)+1];
            strcpy (name, C.name);
        }
        else name = 0;
 
    };
};
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
11.11.2013, 06:08     Ошибка в программе #8
вот при такой реализации в 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
35
36
37
38
39
40
41
int _tmain(int argc, _TCHAR* argv[])
{
    last ob_1, ob_2("Hyacinth");
 
    cout << "k-st objectiv: " << ob_1.Get_Count() << endl;
 
    int count= ob_1.Get_Count();
 
    cout << "number of object 1 is " << ob_1.Get_Num() << endl;
    cout << "number of object 2 is " << ob_2.Get_Num() << endl;
 
    interface_1 *A1[2] = {0}; //      <--
 
    A1[0] = &ob_1;               //      <--      
    A1[1] = &ob_2;               //      <--
 
    interface_1 *Rez= new last() ;
 
    cout<<"o\n";
    for(int i = 0; i < count; i++)
    {
        for( int j = 1; j < count; j++)
        {
            if( A1[j]->Get_Num() < A1[j]->Get_Num())
            {
                Rez = A1[j]; cout<<"o\n";
                A1[j] = A1[j-1];
                A1[j-1] = Rez;
            }
        }
    }
 
    for(int i=0; i<count; i++)
    {
        cout<<"o\n";
        cout<<A1[i]->Get_Num()<<"\n";
        cout<<"o\n";
    }
        system("pause");
    return 0;
}
Оксана 1234
 Аватар для Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 158
11.11.2013, 21:53  [ТС]     Ошибка в программе #9
Спасибо большое за помочь, а у меня опять проблемы с указателями и адресами. Все ф-ии вроде написаны правильно, но проблемы в main. Делала, но не доделала.
Описать полиморфные функции, принимающие своим параметрам указатели на интерфейс 2: функции-операции сдвига для потокового ввода / вывода, использующий интерфейс с
преобразованием объекта в строку и наоборот.

1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.cpp(66): error C2243: приведение типов: преобразование "last *" в "interface_2 *" существует, но недоступно
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.cpp(67): error C2243: приведение типов: преобразование "last *" в "interface_2 *" существует, но недоступно
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.cpp(69): error C2664: vvid: невозможно преобразовать параметр 1 из "interface_2 *" в "interface_2 &"
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.cpp(70): error C2664: vuvid: невозможно преобразовать параметр 1 из "interface_2 *" в "interface_2 &"
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.cpp(72): error C2664: vvid: невозможно преобразовать параметр 1 из "interface_2 *" в "interface_2 &"
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.cpp(73): error C2664: vuvid: невозможно преобразовать параметр 1 из "interface_2 *" в "interface_2 &"

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include "flower.h"
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <cctype>
FILE*uf;
 
void vvid (interface_2 &M)
{
    cout << "Enter the name and color of flower:" ;
    char *str_0 = new char[50];
    cin.getline(str_0, 50);
    M.str_ob(str_0);
}
 
void vuvid (interface_2 &M)
{
    cout << "\nVuvid vvedenoho objecta:" << M.ob_str() << endl;
}
 
using namespace std;
int main()
{
last ob_1, ob_2("Hyacinth");
 
    cout << "k-st objectiv: " << ob_1.Get_Count() << endl;
 
    int count= ob_1.Get_Count();
 
    cout << "number of object 1 is " << ob_1.Get_Num() << endl;
    cout << "number of object 2 is " << ob_2.Get_Num() << endl;
 
    interface_1 *A1[2] = {0}; 
 
    A1[0] = &ob_1;                 
    A1[1] = &ob_2;             
 
    interface_1 *Rez= new last() ;
 
    
    for(int i = 0; i < count; i++)
    {
        for( int j = 1; j < count; j++)
        {
            if( A1[j]->Get_Num() < A1[j]->Get_Num())
            {
                Rez = A1[j]; 
                A1[j] = A1[j-1];
                A1[j-1] = Rez;
            }
        }
    }
 
    for(int i=0; i<count; i++)
    {
       
        cout<<A1[i]->Get_Num()<<"\n";
       
    }
 
        cout << "Vuvid objecta 1: " << ob_1.ob_str() << "\nVuvid objecta 2: " << ob_2.ob_str() << endl;
    
        interface_2 *one=&ob_1;
        interface_2 *two=&ob_2;
 
    vvid ( one );
    vuvid (one );
 
    vvid ( two);
    vuvid ( two);
 
        system("pause");
    return 0;
}
flower

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# include <string>
# include <iostream>
#include <stdio.h>
#include <tchar.h>
#include <time.h>
 
using namespace std;
namespace myname
{
    static int count = 0;
}
 
 
class interface_1
{
public:
    virtual int Get_Num() = 0; 
    virtual int Get_Count() = 0;
};
 
 
class interface_2
{
public:
    virtual void str_ob(char *) = 0;
    virtual char* ob_str() = 0;
};
 
 
class flower
{
public:
    int number;
    char *color;
    char *name;
 
    flower()
    {
        number = 6; 
        name = new char[20]; 
        strcpy(name,"Romashka"); 
        color = new char[20]; 
        strcpy(color, "Biluy");
    };
 
    ~flower()
    {cout<<"Robota destructora";
    delete []color;
    delete []name;
    };
 
};
 
class last : public flower, public interface_1, interface_2
{
public:
 
    int num;
    last() : flower(){  num = ++myname::count;  }
    last(char* o) { strcpy(name, o); num = ++myname::count;}
    ~last() { }
    int Get_Count(){ return myname::count;}
    int Get_Num(){ return num;}
 
    //funkcii konvertacii stricku v object
    void str_ob(char *str_0)
    {
        char *pch = strtok (str_0, " ");
        this->name = pch;
        pch = strtok (str_0, " "); 
        this->color = pch;
    }
    //funkcii konvertacii objecta v strichku
    char* ob_str()
    {
        char *str_1 = new char[20];
        strcpy(str_1, this->color);
        char *str_2 = new char[20];
        strcpy(str_2, this->name);
        strcat(str_1," ");
        strcat(str_1,str_2);
        return str_1;
    }
 
    friend ostream& operator <<(ostream& out, last& C)
    {
        return out << "\n\Name = " << C.name ;
    }
 
    last& operator = (last& C)
    {
 
        if(C.name)
        {
            name = new char [strlen(C.name)+1];
            strcpy (name, C.name);
        }
        else name = 0;
 
    };
};
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2013, 05:31     Ошибка в программе
Еще ссылки по теме:

Ошибка в программе C++
C++ Ошибка в программе
C++ Ошибка в программе

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

Или воспользуйтесь поиском по форуму:
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
12.11.2013, 05:31     Ошибка в программе #10
глянь тут тут и тоже кое чего имеется
Yandex
Объявления
12.11.2013, 05:31     Ошибка в программе
Ответ Создать тему
Опции темы

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