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

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

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

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

27.08.2012, 12:10. Просмотров 368. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при компиляции класса (C++):

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

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

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

Ошибка компиляции (преобразование объекта класса в объект другого класса) - C++
Друзья, добрый день! Не могу понять почему выдается ошибка компиляции... Прога преобразует доллары США в старые Британские фунты. Но...

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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
конструктор где? ты его объявил, но не написал. линкер не может его найти.
Рыжий Лис
Просто Лис
274 / 221 / 61
Регистрация: 17.05.2012
Сообщений: 921
Записей в блоге: 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; //не используется
};
Mines
0 / 0 / 0
Регистрация: 25.08.2012
Сообщений: 8
28.08.2012, 01:08  [ТС] #8
Рыжий Лис, так суть в том, что бы я сам мог ввести какие то данные (в данном случае - имя) и мне оно высветилось в консоли. А при Вашей реализацией получается, что сообщение просто появляется на экране.

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

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

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

Ошибка при компиляции. Где ошибка? (Работа с классом) - C++
Уважаемые форумчане! При компиляции проекта возникает ошибка &quot; undefined reference to `MeterNZiF::MeterNZiF()' &quot; на 7 строку приложения. ...

Ошибка памяти при выполнении, при компиляции не выводит ошибки - C++
ПОмогите плс программа вводит строку символов до точки, а после вычисляет процент согласных в этой строке и выводит их в обратном порядке....


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.08.2012, 01:08
Ответ Создать тему
Опции темы

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