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

Один класс не видит другой - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите найти ошибку. http://www.cyberforum.ru/cpp-beginners/thread422074.html
Задание с подпрограммой, которая упорно не хочет работать и я уже не знаю в чем ошибка.(Данные считываются из текстового файла) Даны массивы N1…N20 – наименование стран; K1…K20 – население в...
C++ Найти в матрице первый по очереди строка с наибольшей суммой элементов. Дано матрицу размерности N на M. Найти в матрице первый по очереди строка с наибольшей суммой элементов. Вывести его номер. http://www.cyberforum.ru/cpp-beginners/thread422042.html
Создать два бинарных файла, содержащих числовую информацию. В результате преобразований в первом файле должны остаться только четные, а во втором C++
Создать два бинарных файла, содержащих числовую информацию. В результате преобразований в первом файле должны остаться только четные, а во втором только нечетные числа. Дополнительных массивов не...
C++ Компоненты текстового файла содержат целые числа. Счи-таем, что если компонента содержит два числа - это коорди-наты точки, три - координаты цент
Компоненты текстового файла содержат целые числа. Счи-таем, что если компонента содержит два числа - это коорди-наты точки, три - координаты центра и радиус окружности, 4- координаты...
C++ Где ошибка? http://www.cyberforum.ru/cpp-beginners/thread422008.html
Помогите найти ошибку? #include <iostream.h> int main () { int x,y,z; cout << "Enter two numbers:\n"; cout << "First number:"; cin >> x; cout << "\nSecond number:"; cin >> y;
C++ Простенькая программа с символьной строкой. Надо найти ошибку. Программа, которая ищет в введённой строке вукву A и заменяет её на букву B и выводит полученную строку на экран. У меня же вводится строка и всё, консоль зависает. Найдите ошибку. #include... подробнее

Показать сообщение отдельно
Azazzelo
4 / 4 / 1
Регистрация: 14.11.2010
Сообщений: 31

Один класс не видит другой - C++

03.01.2012, 22:38. Просмотров 1476. Ответов 3
Метки (Все метки)

Есть 2 класса, унаследованные от общего родителя. Один из классов-потомков не видит второй, объявленный ниже.
Попытки обвиться его заранее в виде class girl и использовать в сlass man контейнер girl *g не принесли результата.
Собственно проблема в функции void reaction(girl& g) класса man.
Как заставить их видеть друг друга?Как передать объект класса в параметре функции?

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
#include <iostream>
#include <iostream>
using namespace std;
 
class human
{
public:
    virtual void reaction()
    {cout << "No one cares";};
};
 
class man : public human
{public:
    int age;
    float k;
    char *name;
    man(int a,char *n)
    {
     name = new char[20];
    strcpy(name,n);
     age =a;
     k= rand()% 10;
    };
    ~man()
    {
    delete[] name;
    age=0;
    k=0;    
    };
    man(man& m)
    {
    m.name = new char[20];
    strcpy(m.name, name);
    m.age=age;
    m.k=k;
    };
    void reaction(girl& g)
    {
    if (g.k <=4) cout << "r1" << endl;
    else if (g.k >4 || g.k <=7) cout << "r2" << endl;
    else cout << "r3" << endl;
    };
};
 
class girl : public human
{public:
    int age;
    float k;
    char *name;
    girl(int a,char *n)
    {
     name = new char[20];
     strcpy(name,n);
     age =a;
     k= rand()% 10;
    };
    ~girl()
    {
    delete[] name;
    age=0;
    k=0;
    };
    girl(girl& g)
    {
    g.name = new char[20];
    strcpy(g.name, name);
    g.age=age;
    g.k=k;
    };
    void reaction(man& m)
    {
    
        if (m.k<4) cout << "r1" << endl;
        else if (m.k>5 || m.k<= 8) cout << "r2" << endl;
        else cout << "r3" << endl;
    };
};
 
 
int main()
{   
    girl a(18,"masha");
    man b(19, "alex");
    a.reaction(b);
    b.reaction(a);
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru