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

Устранить ошибку "no match for operator" - C++

Восстановить пароль Регистрация
 
jekaky
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 7
17.02.2014, 01:43     Устранить ошибку "no match for operator" #1
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
#include <iostream>
#include <string.h>
using namespace std;
 
class Firm {
   public:
       Firm();
       Firm(string n, string a, int p, string e );
       ~Firm();
       string GetName();
       void SetName(string val);
       string GetAdress();
       void SetAdress(string val);
       int GetPhone();
       void SetPhone(int val);
       string GetEmail();
       void SetEmail(string val);
  private:
       string Name;
       string Adress;
       int Phone;
       string Email;
};
int kolvo (Firm*,int);
 
int main() {
    Firm F1;  // вызов конструктора по умолчанию
    Firm F2("Apple", "USA", 556006, "no");  // вызов конструктора с параметрами
    F1.SetName("Nokia");   // Обращаемся к элементам объекта
    F1.SetAdress("Finland");         // через имя объекта, поэтому используем
    F1.SetPhone(60768439);  // точку (.).Получить или изменить значение
    F1.SetEmail("sold@microsoft.com");  // элемента со спецификатором private можно
                                      // только через обращение к соответствующим
                                      // методам (SetPhone, SetEmail  и др.)
    cout<<  F1.GetName()<<" "<<F1.GetAdress()<<" "<<F1.GetPhone()<<" "<<F1.GetEmail()<<endl;
    cout<<  F2.GetName()<<" "<<F2.GetAdress()<<" "<<F2.GetPhone()<<" "<<F2.GetEmail()<<endl;
    Firm F3[10];
    string str1, str2, str3;
    int val1;
    cout<<"Vvedite kol-vo elementov -> ";
    for(int i=0; i<4; i++) {
        cout<<"Enter name -> ";
        cin>>str1;
        F3[i].SetName(str1);
        cout<<"Enter adress -> ";
        cin>>str2;
         F3[i].SetAdress(str2);
        cout<<"Enter phone -> ";
        cin>>val1;
        F3[i].SetPhone(val1);
        cout<<"Enter email -> ";
        cin>>str3;
        F3[i].SetEmail(str3);
    }
    for(int i=0; i<4; i++)
    cout<<F3[i].GetName()<<" "<<F3[i].GetAdress()<<" "<<F3[i].GetPhone()<<" "<<F3[i].GetEmail()<<endl;
 
    int i, s=0;
    for(i=0; i<4; i++)
    {
   if(F3[i].GetEmail()==0) s++;
    }
    cout<<"n\Kol-vo firm without email"<<"   "<<s<<"\n";
 
    return  0;
}
Firm::Firm() {
                              // конструктор по умолчанию
}
// конструктор с параметрами
Firm::Firm(string n, string a, int p, string e ) {
 
      n=Name;
      a=Adress;
      p=Phone;
      e=Email;
}
Firm::~Firm() {
        //  деструктор по умолчанию – у нас явно в программе не вызывается,
       // его можно в класс не включать
}
string Firm::GetName() {    //Метод, позволяющий прочитать значение свойства
    return(Name);
}
void Firm::SetName(string val) { // Метод для установки нового значения
    Name=val;                               // свойства
}
string Firm::GetAdress() {
    return Adress;
}
void Firm::SetAdress(string val) {
    Adress=val;
}
int Firm::GetPhone() {
    return Phone;
}
void Firm::SetPhone(int val) {
    Phone=val;
}
string Firm::GetEmail() {
    return Email;
}
void Firm::SetEmail(string val) {
   Email=val;
}
no match for operator==, подскажите что не так в 61 строке, нужно вычислить фирмы без емэйла
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2014, 01:43     Устранить ошибку "no match for operator"
Посмотрите здесь:

Исправить ошибку в строках "case 3:zadacha(Uch,Pr,Ocen);break;" и " return 0;" C++
C++ Устранить ошибку оформления кода "expected `}'"
C++ Исправить ошибку:error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream"
Как устранить ошибку "Was not declared in this scope" C++
C++ Выдает ошибку c:\proect\8\8\8.cpp(60): error C2040: ==: "char [20]" отличается по уровням косвенного обращения от "int"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Amandosov
Знаток
156 / 156 / 65
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
17.02.2014, 01:47     Устранить ошибку "no match for operator" #2
Цитата Сообщение от jekaky Посмотреть сообщение
if(F3[i].GetEmail()==0) s++;
Походу у вас типы не совпадают
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
17.02.2014, 01:58     Устранить ошибку "no match for operator" #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от jekaky Посмотреть сообщение
if(F3[i].GetEmail()==0) s++;
замените на
C++
1
if(F3[i].GetEmail()=="") s++;
jekaky
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 7
17.02.2014, 02:00  [ТС]     Устранить ошибку "no match for operator" #4
Цитата Сообщение от metaluga145 Посмотреть сообщение
замените на
C++
1
if(F3[i].GetEmail()=="") s++;
а что это ""? вроде как работает
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
17.02.2014, 02:03     Устранить ошибку "no match for operator" #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от jekaky Посмотреть сообщение
а что это ""
пустая строка
jekaky
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 7
17.02.2014, 02:08  [ТС]     Устранить ошибку "no match for operator" #6
Цитата Сообщение от metaluga145 Посмотреть сообщение
пустая строка
спасибо большое, а вот как допустим при вводе при запуске кода в комадной строке в графе емэйл прописать пустую строку?
Yandex
Объявления
17.02.2014, 02:08     Устранить ошибку "no match for operator"
Ответ Создать тему
Опции темы

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