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

Что не правильно? - C++

Восстановить пароль Регистрация
 
Tiami
Яростный кот
 Аватар для Tiami
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
10.04.2009, 13:31     Что не правильно? #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
#include <iostream>
using namespace std;
class kompas
{
      int gradus;
      float minut;
      char b;
      public:
             void vvod(int gradus,int minut,char b)
             {
                  cout<<"vvedite gradus,minut i naprvlenie!=";
                  cin>>gradus>>minut>>b;
             }
             void display()
             {
                  cout<<"Gradus+Shirita"<<gradus<<'\xF8'<<minut<<b;
             }
};
int main()
{
    kompas s1;
    s1.vvod(175,34,'W');
    s1.display();
    for(;;)
{
    s1.vvod(int gradus,int minut,char b);
    s1.display();
}
    return 0;
}
Вот Ошибочки:
1.expected primary-expression before "int"
2.expected primary-expression before "int"
3.expected primary-expression before "char"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Monte-Cristo
 Аватар для Monte-Cristo
2807 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
10.04.2009, 13:47     Что не правильно? #2
Цитата Сообщение от Tiami Посмотреть сообщение
void vvod(int gradus,int minut,char b)
все из-за этого.... аргументы в функции совпадает с именами класса... переименуй..

Добавлено через 1 минуту 40 секунд
C++
1
2
3
4
5
6
void vvod(int g, float m, char z)
{
   gradus = g;
   minut = m;
   b = z;
}
Добавлено через 1 минуту 10 секунд
не надо в функцию-метод передавать параметры и требовать ввода... так нельзя..если передал, то уже тогда присваевай членам класса данные сразу...
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
10.04.2009, 13:47     Что не правильно? #3
Да и этот участок страноват
C++
1
2
3
4
5
for(;;)//вечный цыкл
{
        s1.vvod(int gradus,int minut,char b);//тут ошибка
        s1.display();
}
Tiami
Яростный кот
 Аватар для Tiami
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
10.04.2009, 14:35  [ТС]     Что не правильно? #4
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
#include <iostream>
using namespace std;
class kompas
{
      int gradus;
      float minut;
      char b;
      public:
             void vvod(int g, float m, char z)
             {
                  gradus = g;
                  minut = m;
                  b = z;
                  cout<<"vvedite gradus,minut i naprvlenie!=";
                  cin>>gradus>>minut>>b;
             
             }
             void display()
             {
                  cout<<"Gradus+Shirita"<<gradus<<'\xF8'<<minut<<b;
             }
};
int main()
{
    kompas s1;
    s1.vvod(175,34,'W');
    s1.display();
    for(;;)
{
    s1.vvod();
    s1.display();
}
    return 0;
}
Переделал вот!
но пишет ошибку в 30 строчке
1. no matching function for call to `kompas::vvod()'
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
10.04.2009, 14:59     Что не правильно? #5
Tiami, ну так ты ей аргументы не передаешь)
Tiami
Яростный кот
 Аватар для Tiami
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
10.04.2009, 15:18  [ТС]     Что не правильно? #6
Цитата Сообщение от Gravity Посмотреть сообщение
Tiami, ну так ты ей аргументы не передаешь)
Ну а как тогда)
denix
 Аватар для denix
63 / 63 / 2
Регистрация: 11.01.2009
Сообщений: 130
10.04.2009, 15:20     Что не правильно? #7
s1.vvod(55, 5.6, 'x');
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
10.04.2009, 15:20     Что не правильно? #8
Цитата Сообщение от Tiami Посмотреть сообщение
Ну а как тогда)
Так, как в 26 строке))
Rumata
4 / 4 / 0
Регистрация: 10.04.2009
Сообщений: 23
10.04.2009, 16:32     Что не правильно? #9
Глава 6, упражнение 7. Лафоре (ООП в С++).
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
#include "stdafx.h"         //директива предпроцессора
#include <iostream>         //для cin, cout
using namespace std;
char ch = 'a';
class angle {
private:
    int gradus;
    float min;
    char direct;
public:
    angle(int gr, float m, char dir): gradus(gr), min(m), direct(dir)
    {  }
    void getpoint()
    {
        cout << "Vvedite koordinatu v formate (xx/xx.xx X) ";
        cin >> gradus >> ch >> min >> direct;
    }
    void showpoint()const
    {
        cout << "Koordinati tochki: " << gradus << '\xF8' << min << "\' " << direct << endl;
    }
};
//////////////////////////////////////////////////////////////////
int main()
{
    angle napr1 (30, 26.37, 'W');
    napr1.showpoint();
    do {
        napr1.getpoint();
        napr1.showpoint();
        cout << "Povtorie? y/n "; cin >> ch;
    } while (ch != 'n');
return 0;
}
Tiami
Яростный кот
 Аватар для Tiami
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
10.04.2009, 17:46  [ТС]     Что не правильно? #10
Цитата Сообщение от Rumata Посмотреть сообщение
Глава 6, упражнение 7. Лафоре (ООП в С++).
Почти также

Добавлено через 33 секунды
Ток я сам делалНе люблю ответы эти

Добавлено через 1 минуту 5 секунд
Цитата Сообщение от Rumata Посмотреть сообщение
#include "stdafx.h" //директива предпроцессора
И вот это от чего файл?)
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
10.04.2009, 17:53     Что не правильно? #11
Цитата Сообщение от Tiami Посмотреть сообщение
Ток я сам делалНе люблю ответы эти
вот это правильно.
Цитата Сообщение от Tiami Посмотреть сообщение
#include "stdafx.h" //директива предпроцессора
И вот это от чего файл?)
это студия любит генерировать всякую гадость
Rumata
4 / 4 / 0
Регистрация: 10.04.2009
Сообщений: 23
10.04.2009, 18:28     Что не правильно? #12
Цитата Сообщение от Tiami Посмотреть сообщение
Почти также
Ток я сам делалНе люблю ответы эти
Это правильно. Я тоже сам делал, но сейчас когда из архива вытаскивал, даже сократил немного от первоначального (правда компилить не пробовал, нет под рукой, но должно работать).
Цитата Сообщение от Tiami Посмотреть сообщение
И вот это от чего файл?)
Этот файлик нужен студии, но в принципе, можно без него обойтись.

Добавлено через 12 минут 19 секунд
Цитата Сообщение от Tiami Посмотреть сообщение
C++
1
2
3
4
5
6
public:
void vvod(int gradus,int minut,char b)
{
cout<<"vvedite gradus,minut i naprvlenie!=";
cin>>gradus>>minut>>b;
}
тебе нужен конструктор:
C++
1
kompas(int gr,int min,char napr): gradus(gr), minut(min), b(napr)
для
C++
1
s1.vvod(175,34,'W');
а для ввода метод без аргументов:
C++
1
2
3
4
5
void vvod()
{
cout<<"vvedite gradus,minut i naprvlenie!=";
cin>>gradus>>minut>>b;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2009, 19:24     Что не правильно?
Еще ссылки по теме:

C++ что в моей задаче на C++ не правильно?
Что не правильно в коде, что посоветуете дописать C++
что не правильно в коде? C++
C++ Не понимаю что не правильно
Что я делаю не правильно? C++

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

Или воспользуйтесь поиском по форуму:
Monte-Cristo
 Аватар для Monte-Cristo
2807 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
10.04.2009, 19:24     Что не правильно? #13
Цитата Сообщение от Tiami Посмотреть сообщение
И вот это от чего файл?)
это препроцессорный файл в Visual C++ начиная с 2005 версии и заканчивая 2008...
при переносе на другии компиляторы, он не нужен...

Цитата Сообщение от Tiami Посмотреть сообщение
* * * * * * * * * * * * *void vvod(int g, float m, char z)
* * * * * * * * * * * * *{
* * * * * * * * * gradus = g;
* * * * * * * * * minut = m;
* * * * * * * * * b = z;
* * * * * * * * * * * * * * * * * cout<<"vvedite gradus,minut i naprvlenie!=";
* * * * * * * * * * * * * * * * * cin>>gradus>>minut>>b;
* * * * * * *
* * * * * * *}
у тебя получается что передаются парметры..устанавливаются..а потом снова вводятся с клавиатуры.... зачем??? раздели на два метода..перегрузи их...

Цитата Сообщение от Tiami Посмотреть сообщение
Ну а как тогда)
можешь перегрузить методы... например так:

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
#include <iostream>
using namespace std;
 
class kompas
{
  private:
    int gradus;
    float minut;
    char b;
    
  public:
    void vvod(int g, float m, char z)
    {
      gradus = g;
      minut = m;
      b = z;
    }
    
    void vvod()
    {
      cout<<"vvedite gradus,minut i naprvlenie!=";
      cin>>gradus>>minut>>b;      
    }
    
    void display()
    {
      cout<<"Gradus+Shirita"<<gradus<<'\xF8'<<minut<<b;
    }
};
 
int main()
{
  kompas s1;
  s1.vvod(175,34,'W');
  s1.display();
  for(;;)
  {
    s1.vvod();
    s1.display();
  }
    return 0;
}
Yandex
Объявления
10.04.2009, 19:24     Что не правильно?
Ответ Создать тему
Опции темы

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