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

С++ выдает ошибку - C++

Восстановить пароль Регистрация
 
Ammandus
0 / 0 / 0
Регистрация: 24.08.2011
Сообщений: 23
18.12.2012, 09:00     С++ выдает ошибку #1
Доброе утро!
Подскажите пожалуйста, на что может ругаться компилятор?
Выдет ошибку: error: no match for 'operator<<' in 'std::operator<< [with _Traits = std::char_traits<char>](((std::basic_ostream<char, std::char_traits<char> >&)(& std::cout)), ((const char*)"\012dist1: ")) << dist1.Distance::showdist()'|

Ругается на следующую строчку:
C++
1
cout << "\ndist1: " << dist1.showdist();
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
//englplus.cpp
//peregryzka operacii "+" dlya slojeniya peremennih tipaDistances
#include <iostream>
#include <windows.h>
#include <conio.h>
using namespace std;
 
char* Rus(const char* text);
///////////////////////////////////////////////
class Distance //klass anglyiskih mer dlini
{
  private:
    int fut;
    float dyim;
  public:
    //konstryktor bez parametrov
    Distance () : fut(0),dyim(0) // konstruktor
      {}
    //konstryktor s dvymya parametrami
    Distance(int ft, float in): fut(ft), dyim(in)
    {}
    void getdist() //polychit' znachenie
      {
        cout << Rus("\nВведите футы: "); cin >> fut;
        cout << Rus("\nВведите дюймы: "); cin >> dyim;
      }
    void showdist()
    { cout << fut << "\'-" << dyim << "\""; }
    //slojenie dvyh dlin
    Distance operator+ (Distance) const;
};
///////////////////////////////////////////////
//slojenie dvyh dlin
Distance Distance::operator+ (Distance d2) const
{
  int f = fut + d2.fut;     // skladivaem fyti
  float i = dyim + d2.dyim; // // skladivaem dyimi
 
  if (i >= 12.0)   //esli dyimov bolshe 12-ti
  {
    i -=12.0;      //to ymenshaem diymi na 12
    f++;           // i yvelichivaem fyti na 1
  }
  return Distance (f, i);
}
///////////////////////////////////////////////
int main()
{
  Distance dist1, dist3, dist4;
  dist1.getdist();              // polychaem informaciy
 
  Distance dist2 (11, 6.25); //opredelyaem peremennyu dist2
 
  dist3 = dist1 + dist2; //slojenie s peregryzkoy
  dist4 = dist1 + dist2 + dist3; //slojenie s peregryzkoy
 
  cout << "\ndist1: " << dist1.showdist();
  cout << "\ndist2: " << dist2.showdist();
  cout << "\ndist3: " << dist3.showdist();
  cout << "\ndist4: " << dist4.showdist();
 
  return 0;
}
//--------------------------------------------------------------
// ф-ция русификации
char buf[256]; // за пределами функции
char* Rus(const char* text)
{
 
CharToOem(text, buf);
return buf;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2012, 09:00     С++ выдает ошибку
Посмотрите здесь:

выдает ошибку C++
выдает ошибку C++
Компилятор выдает ошибку C++
выдает ошибку( C++
Выдает ошибку C++
Выдает ошибку C++
Выдает ошибку C++
Выдает ошибку C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
18.12.2012, 09:05     С++ выдает ошибку #2
обратите внимание на то, что у вас возвращает showdist(), и как вы это хотите напечатать)
Ammandus
0 / 0 / 0
Регистрация: 24.08.2011
Сообщений: 23
18.12.2012, 10:27  [ТС]     С++ выдает ошибку #3
О, спасибо!)) И действительно, нужно было вот таким образом вывести:

C++
1
2
3
4
  cout << "\ndist1: "; dist1.showdist();
  cout << "\ndist2: "; dist2.showdist();
  cout << "\ndist3: "; dist3.showdist();
  cout << "\ndist4: "; dist4.showdist();
Yandex
Объявления
18.12.2012, 10:27     С++ выдает ошибку
Ответ Создать тему
Опции темы

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