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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mines
0 / 0 / 0
Регистрация: 25.08.2012
Сообщений: 8
#1

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

27.08.2012, 12:10. Просмотров 366. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2012, 12:10     Ошибка при компиляции класса
Посмотрите здесь:

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

Ошибка компиляции при реализации класса-шаблона - C++
Не могу понять почему компилятор ругается. Помогите разобраться. #include &lt;iostream&gt; using namespace std; template...

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

Ошибка компиляции после объявления класса - C++
Что не так в этом коде? Писал программку, не хочет запускаться. Упростил до минимума,все равно не работает! #include &lt;iostream&gt;; ...

Шаблон класса строк - ошибка компиляции - C++
Добрый вечер. Пытаюсь выполнить упражнение с учебника. Gcc выдаёт следующее: /home/ilyuha21st/Projects/qtcreator/cpp_some1/main.cpp:148:...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andsteadur
153 / 137 / 3
Регистрация: 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;
}
Gibboustooth
733 / 201 / 11
Регистрация: 23.06.2011
Сообщений: 440
27.08.2012, 12:18     Ошибка при компиляции класса #3
Если я что-то в чем-то понимаю, вы пытаетесь вызвать функцию my_str.mystring() без параметров.
Программа заходит в класс и ищет правило для подобного вызова, но находит только функцию mystring(string), т.е. фукнцию с одним параметром. С точки зрения C++ это 2 разные функции. Отсюда ошибка.
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
27.08.2012, 12:22     Ошибка при компиляции класса #4
C++
1
#include <string>
не забудьте
Mines
0 / 0 / 0
Регистрация: 25.08.2012
Сообщений: 8
27.08.2012, 12:31  [ТС]     Ошибка при компиляции класса #5
Спасибо Andsteadur, но даже с исправлениями выдает ошибку причем новую
http://ideone.com/syTV5


DaskOFF, спасибо)
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
27.08.2012, 12:35     Ошибка при компиляции класса #6
конструктор где? ты его объявил, но не написал. линкер не может его найти.
Рыжий Лис
Просто Лис
262 / 209 / 55
Регистрация: 17.05.2012
Сообщений: 849
Записей в блоге: 4
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; //не используется
};
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2012, 01:08     Ошибка при компиляции класса
Еще ссылки по теме:

Ошибка при вызове метода класса в методе другого класса - C++
Господа программисты, возникла такая проблема. При вызове метода класса в методе другого класса выходит такая ошибка &quot; нестандартный...

Ошибка при работе с объектом класса в конструкторе другого класса - C++
Имеется данный код: https://github.com/ubelian/glgame/tree/master/glgame В файле Food.cpp в конструкторе класса Food::Food() на 19...

ошибка при компиляции - C++
перенес программу с другого компа и столкнулся со следующими ошибками(см. изображение). попробывал скачать библиотеку graphics.h для...

ошибка при компиляции - C++
Добрый день. при компиляции выдает вот такую ошибку: c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: cannot find...


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

Или воспользуйтесь поиском по форуму:
Mines
0 / 0 / 0
Регистрация: 25.08.2012
Сообщений: 8
28.08.2012, 01:08  [ТС]     Ошибка при компиляции класса #8
Рыжий Лис, так суть в том, что бы я сам мог ввести какие то данные (в данном случае - имя) и мне оно высветилось в консоли. А при Вашей реализацией получается, что сообщение просто появляется на экране.

Добавлено через 54 секунды
А нет, прошу прощения, у меня с первого раза заглючило почему-то, все работает)) Спасибо!
Yandex
Объявления
28.08.2012, 01:08     Ошибка при компиляции класса
Ответ Создать тему
Опции темы

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