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

Ошибка invalid use of member - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.58
DonDigidon
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 8
10.07.2013, 14:00     Ошибка invalid use of member #1
Вот код.

C++
1
2
3
if (variety == a1.seta
 cout << a1.seta;
 else cout << "This sort is not.Try again." << endl;
В ошибке показывает вот это:

invalid use of member (did you forget the `&' ?)


Как решить проблему???
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11807 / 6786 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
10.07.2013, 14:03     Ошибка invalid use of member #2
1. Где скобка в условии?

Добавлено через 21 секунду
2. Что такое seta?
DonDigidon
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 8
10.07.2013, 14:08  [ТС]     Ошибка invalid use of member #3
C++
1
2
3
if (variety == a1)
 cout << a1;
 else cout << "This sort is not.Try again." << endl;
Я сделал вот так.
Проблема:

no match for 'operator==' in 'variety == a1'
no match for 'operator<<' in 'std::cout << a1'
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
10.07.2013, 14:11     Ошибка invalid use of member #4
как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
int main()
{
    int variety=10;
    int a1=5;
    if (variety == a1)
 cout << a1;
 else cout << "This sort is not.Try again." << endl;
 
    system("pause");
    return 0;
}
DonDigidon
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 8
10.07.2013, 14:21  [ТС]     Ошибка invalid use of member #5
чтобы было понятней

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
#include <iostream>
#include <cstring>
using namespace std;
 
int variety;
 
enum yn {no ,yes};
enum color {red, yellow, green, orange};
 
void out(enum yn x);
 
char *c[ ] = {
     "red", "yellow", "green", "orange"};
 
//Ðîäîâîé ГЄГ«Г*Г±Г± ôðóêòîâ
 
class fruit {
      public:
             enum yn annual;
             enum yn perennial;
             enum yn tree;
             enum yn tropical;
             enum color clr;
             char name[40];
      };
      
//ÏðîçâîèäГ*ûé ГЄГ«Г*Г±Г± ÿáëîê
 
class apple: public fruit {
      enum yn cooking;
      enum yn crunchy;
      enum yn eating;
      public:
             void seta(char *n, enum color c, enum yn ck, enum yn crchy, enum yn e);
             void show();
};
 
void apple::seta(char *n, enum color c, enum yn ck, enum yn crchy, enum yn e)
{
strcpy(name, n);
annual = no;
perennial = yes;
tree = yes;
tropical = no;
clr = c;
cooking = ck;
crunchy = crchy;
eating = e;     
}
 
 
void apple::show()
{
cout << name << " Apple - is: " << "\n"; 
cout << "Annual: "; out(annual);
cout << "Perennial: "; out(perennial);
cout << "Tree: "; out(tree);
cout << "Tropical: "; out (tropical);
cout << "Color: " << c[clr] << "\n";
cout << "Cokking: "; out(cooking);
cout << "Crunchy: "; out(crunchy);
cout << "Eating: "; out(eating);
cout << "\n";
}
 
 
void out(enum yn x)
{
if (x == no) cout << "no\n";
else cout << "yes\n";
}
 
 
 
int main()
{
    
     apple a1, a2;
 
 a1.seta("Red wonder", red, no, yes, yes);
 a2.seta("Jonathan", red, yes, no, yes);
    
 do {
 cout << "Write any variety of apples:";
 cin >> variety;
 
 if (variety == a1)
 cout << a1;
 else cout << "This sort is not.Try again." << endl;
 
 
}while (variety != 0);
 system("pause");
}
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
10.07.2013, 16:54     Ошибка invalid use of member #6
Цитата Сообщение от DonDigidon Посмотреть сообщение
enum yn {no ,yes};
bool уже не котируется?
Цитата Сообщение от DonDigidon Посмотреть сообщение
char *c[ ] = { "red", "yellow", "green", "orange"};
const потерян
Цитата Сообщение от DonDigidon Посмотреть сообщение
if (variety == a1)
сравнение целого с яблоком?
Цитата Сообщение от DonDigidon Посмотреть сообщение
void seta
Ознакомьтесь с конструкторами.
Цитата Сообщение от DonDigidon Посмотреть сообщение
cout << a1;
Чтобы так делать нужно перегрузить оператор вывода в поток для класса яблочек.
DonDigidon
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 8
10.07.2013, 17:25  [ТС]     Ошибка invalid use of member #7
Tulosba спасибо)Только я не знаю что делать с перегрузкой оператора вывода в поток.Я-новичок просто.
Можешь написать код?)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2013, 17:32     Ошибка invalid use of member
Еще ссылки по теме:

C++ ошибка [BCC32 Error] windowp.cpp(201): E2235 Member function must be called or its address taken
Массив в структуре. invalid use of non-static data member C++
Ошибка при сборке проекта - invalid use of non-static data member 'MainWindow::test' C++

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
10.07.2013, 17:32     Ошибка invalid use of member #8
DonDigidon, я думаю, Вам сначала надо в более базовых вещах разобраться. Напишите пока для класса метод print(), который будет нужные поля на консоль выводить. А там уже и до перегрузки вывода в поток рукой подать.
Yandex
Объявления
10.07.2013, 17:32     Ошибка invalid use of member
Ответ Создать тему
Опции темы

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