Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Mines
0 / 0 / 0
Регистрация: 25.08.2012
Сообщений: 8
#1

Ошибка при компиляции класса

27.08.2012, 12:10. Просмотров 395. Ответов 7
Метки нет (Все метки)

Добрый день всем. Пытаюсь создать класс для вывода строки на экран типа: "Привет, <имя>, как ты?"
Но компилятор ругается на 25 строке и пишет ошибку: no matching function for call to ‘MyStr::mystring()’
Не могу понять, в чем же дело.
Вот ссылка на ideone: http://ideone.com/syTV5
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
#include<iostream>
 
 
using namespace std;
 
class MyStr {
    public:
        MyStr();
        void mystring(string);
    private:
        string my_str;
};
 
 
void MyStr::mystring(string my_str){
    getline(cin,my_str); //print name
    cout<<"Hello,"<<' '<<my_str<<' '<<"!"<<' '<<"How are you?";
}
 
 
int main() {
 
MyStr my_str;
cout<<"And now you will see, what you do!"<<endl<<endl;
my_str.mystring();
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2012, 12:10
Ответы с готовыми решениями:

Ошибка wreorder при компиляции класса
В общем замучался каждый раз чего-нибудь упрощать. Вот допустим есть класс ab,...

Ошибка компиляции при реализации класса-шаблона
Не могу понять почему компилятор ругается. Помогите разобраться. #include...

Ошибка при компиляции. Как правильно создавать класс с объектами от другого класса?
Есть класс Car. У него есть двигатель(class Engine) и переменная...

Ошибка компиляции (преобразование объекта класса в объект другого класса)
Друзья, добрый день! Не могу понять почему выдается ошибка компиляции......

Ошибка компиляции абстрактного класса
public: Tour(); Tour(const char *, int, float); Tour(const Tour &amp;);...

7
Andsteadur
153 / 137 / 34
Регистрация: 23.05.2009
Сообщений: 275
27.08.2012, 12:15 #2
C++
1
void mystring(string);
Прототип метода, описанный в классе, требует наличия параметра типа стринг при вызове метода. В строке 25 нужно передать строку в качестве параметра.

например:
C++
1
2
3
4
5
6
7
int main() {
 
MyStr my_str;
cout<<"And now you will see, what you do!"<<endl<<endl;
my_str.mystring("This is my string");
return 0;
}
0
Gibboustooth
733 / 201 / 11
Регистрация: 23.06.2011
Сообщений: 440
27.08.2012, 12:18 #3
Если я что-то в чем-то понимаю, вы пытаетесь вызвать функцию my_str.mystring() без параметров.
Программа заходит в класс и ищет правило для подобного вызова, но находит только функцию mystring(string), т.е. фукнцию с одним параметром. С точки зрения C++ это 2 разные функции. Отсюда ошибка.
0
DaskOFF
112 / 112 / 42
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
27.08.2012, 12:22 #4
C++
1
#include <string>
не забудьте
0
Mines
0 / 0 / 0
Регистрация: 25.08.2012
Сообщений: 8
27.08.2012, 12:31  [ТС] #5
Спасибо Andsteadur, но даже с исправлениями выдает ошибку причем новую
http://ideone.com/syTV5


DaskOFF, спасибо)
0
novi4ok
551 / 504 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
27.08.2012, 12:35 #6
конструктор где? ты его объявил, но не написал. линкер не может его найти.
0
Рыжий Лис
Просто Лис
941 / 470 / 329
Регистрация: 17.05.2012
Сообщений: 1,940
Записей в блоге: 8
27.08.2012, 14:20 #7
C++
1
2
3
4
5
6
7
class MyStr {
    public:
        MyStr(){} //конструктор
        void mystring(string);
    private:
        //string my_str; //не используется
};
0
Mines
0 / 0 / 0
Регистрация: 25.08.2012
Сообщений: 8
28.08.2012, 01:08  [ТС] #8
Рыжий Лис, так суть в том, что бы я сам мог ввести какие то данные (в данном случае - имя) и мне оно высветилось в консоли. А при Вашей реализацией получается, что сообщение просто появляется на экране.

Добавлено через 54 секунды
А нет, прошу прощения, у меня с первого раза заглючило почему-то, все работает)) Спасибо!
0
28.08.2012, 01:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2012, 01:08

Шаблон класса строк - ошибка компиляции
Добрый вечер. Пытаюсь выполнить упражнение с учебника. Gcc выдаёт следующее:...

Ошибка компиляции после объявления класса
Что не так в этом коде? Писал программку, не хочет запускаться. Упростил до...

Присвоение указателю члену класса нового адреса, ошибка компиляции
Идея в том, чтобы хранить в отдельном списке объекты типа B и передавать в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru