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

Функция друг - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Правильно ли я выделил память под элементы массива http://www.cyberforum.ru/cpp-beginners/thread582940.html
Задание: Дана матрица N*M, содержащая оценки класса за второе полугодие. Подсчитайте количество неуспевающих учеников(имеются оценки 0,1,2,3). Вот сделал, но не уверен что правильно выделил память т.к. массив двумерный. Прога то работает, но она работает даже при выделении памяти под a= new int *, поэтому и проверить норм не могу, может как-то по другому надо память выделять. Пожалуйста...
C++ Распечатать все трехзначные десятичные числа, сумма цифр которых равна М, и колличество таких чисел. Здравтвуйте, помогите пожалуйста с решением. Очень нужно! Заранее большое спасибо!!! Распечатать все трехзначные десятичные числа, сумма цифр которых равна М, и колличество таких чисел. Если их нет, выдать сообщение. http://www.cyberforum.ru/cpp-beginners/thread582937.html
C++ Машина Тьюринга, переделать для бесконечной ленты
Я написал машину Тьюринга, в которой лента на 1000 элементов, помогите переделать ее под бесконечную ленту. Вот код: #include <map> #include<iostream> #include<string> using namespace std;
Задача с массивом C++
Задан числовой массив А. Составить программу поиска элемента массива, который является наименьшим из наибольших по столбцам. P.S. с массивами не очень дружу... Подскажите хотя бы принцип этой программы.
C++ массив из файла http://www.cyberforum.ru/cpp-beginners/thread582933.html
ОЧЕНЬ ВАЖНО!!!! Скажите как заполнить одномерный массив чисел из файла. уже столько времени на это убила, а току НОЛЬ!
C++ Линейные массивы Если ты добрый отзывчивый умный человечек! или тебе просто нечего делать но ты знаешь как решить эту задачку.. Прошу ТЕБЯ О ПОМОЩИ!!! Скоро зачетная неделя и мне срочно нужно сдать пару задачек на С++.....а я его совсем не понимаю((( прошуууууууу помогиииите... Дан линеыный вещественный массив а1,а2...аn. Определить максимальное количество подряд идущих положительных элементов массива не... подробнее

Показать сообщение отдельно
Lewis_Husk
 Аватар для Lewis_Husk
0 / 0 / 0
Регистрация: 28.03.2012
Сообщений: 13
22.05.2012, 20:02     Функция друг
Здравствуйте. У меня проблемы с преобразованием типов для функции друг(а может и не сними) компилятор говорит: request for member `getname' in `*((+(((unsigned int)i) * 4u)) + array)', which is of non-class type `Detail*' . Я пытался наобум изменять значения типов и прочие радости, но ничего данным шаманством не получилось сделать. Прощу вас, объяснить, где же я простреливаю себе ногу?
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include <iostream>
#include <cstring>
using namespace std;
 
//Basic class Detail
class Detail
{
public:
    Detail(const char* name, int firm);
    virtual ~Detail() {}
    virtual void Display();                     //view data for party of detail
    friend int sum(Detail* array,int n);            //all number of details for name of detail
    const char* getname();
 
protected:
    char name[80];//name of detail
    int firm;     //digit of workshop
};
 
Detail::Detail(const char* _name, int _firm) : firm(_firm)
{
    strncpy(name, _name, 80);
}
 
const char* Detail::getname() { return name; };
 
void Detail::Display()
{
    cout << "Detail, name is - " << name << endl;
    cout << "Firm is - "         << firm << endl;
}
 
//Child of Detail Detail1
class Detail1 : public  Detail
{
public:
    Detail1(const char*, int, bool);
    ~Detail1(){};
    void Display();//view data for party of detail
    friend int sum(Detail** array,int n);
 
private:
    bool coating;
};
 
Detail1::Detail1(const char* _name, int firm, bool _coating) : Detail(_name, firm), coating(_coating)
{
    strncpy(name, _name, 80);
}
 
void Detail1::Display()
{
    cout << "Detail1, name is -"<< name         << endl;
    cout << "Firm is -"         << firm         << endl;
    cout << "Coated is  -"      << coating      << endl;
}
 
//Child of Detail Detail2
class Detail2 : public  Detail
{
public:
    Detail2(const char*, int, float);
    ~Detail2(){}
    void Display();
    friend int sum(Detail** array,int n);
 
private:
    float resist; //digit of detail2 resist
};
 
Detail2::Detail2(const char* _name, int _firm, float _resist) : Detail(_name, firm), resist(_resist)
{
    strncpy(name, _name, 80);
}
 
void Detail2::Display()
{
    cout << "Detail2, name is - " << name   << endl;
    cout << "Firm is - "          << firm   << endl;
    cout << "Resistance - "       << resist << endl;
}
 
int sum(Detail** array,int n)
{
    char name[80];
    int k=0;
        cout << "Input name: "; cin>>name;
    for(int i=0; i<n; i++)
        if(strcmp(array[i].getname(),name)==0)
                        {k++;}
            cout<<k;
}
 
int main()
{
    int nMenu, flag = 1, N;
    int i = 0; //The new
    int n;
    Detail* p[100];
    cout <<"\nNumbers of details: ";    cin >> N;
    while(i < N && flag)
    {
        //Menu
        cout << "\nNew detail. Enter: " << endl; 
        cout << "1-for detail,2-detail1,3-detail2,4 - sum, 5 - exit\n"; 
        cin >> nMenu;
        string name; int firm; bool coating; float resist;
        if(nMenu > 0 && nMenu < 4)
        {
            cout << "Name?(char) "; cin >> name; cout << endl;
            cout << "Firm?(digit) "; cin >> firm; cout << endl;
        }
        switch (nMenu)
        {
            case 1 :
                p[i++] = new Detail(name.c_str(), firm);
                break;
 
            case 2 :
                cout << "Coated?(1-yes, 0-no) "; cin >> coating; cout << endl;
                p[i++] = new Detail1(name.c_str(), firm, coating);
                break;
 
            case 3 :
                cout << "Resistance? "; cin >> resist; cout << endl;
                p[i++] = new Detail2(name.c_str(), firm, resist);
                break;
            case 4:
                cout << "Sum! - "; cout<<sum(p,n);      
            default : flag = 0; break;
        }
    }
    for (int id = 0; id < N; id++)
    {
        p[id]->Display();
        delete p[id];
    }
    cin.get();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru