Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

что делать с этим оператором?

1.8K
13 августа 2006 года
pod
144 / / 05.04.2006
string1.h
# include <iostream>
# include "string1.h"
using namespace std;

int main()
{
String s("check");
cout<<s;

return 0;
}

string1.cpp
# include <iostream>
# include "string1.h"
# include <cstring>

using namespace std;

String::String(char* s)
{
strcpy(sentence,s);
length=strlen(s);
}

ostream &operator<<(ostream &output,String &s)
{
output<<s.sentence;
return output;
}


main.cpp
# include <iostream>
# include "string1.h"
using namespace std;

int main()
{
String s("check");
cout<<s;

return 0;
}

ну скольлько в этом коде может быть ошибок?
но не как не 24

помогите пожалуста, вчём дело почему msvs 2005 так не любит
перегружат операторы?
4.1K
13 августа 2006 года
GRIENDERS
117 / / 06.06.2006
[QUOTE=pod]string1.h
# include <iostream>
# include "string1.h"
Зачем включать файл сам в себя??

string1.cpp
# include <iostream>
# include "string1.h"
# include <cstring>

using namespace std;

String::String(char* s)
{
strcpy(sentence,s);
length=strlen(s);
}

Здесь ты наверно надо так String1::String1(char* s). А ваше я не понял: ты хочешь создать свой класс String1?
398
14 августа 2006 года
Alexandoros
630 / / 21.10.2005
Специально для туго развитых - ВСЕ ТЕЛЕПАТЫ УЕХАЛИ В ОТПУСК, НА МОРЕ. Поэтому для смертных желательно увидеть ТЕКСТ ОШИБКИ.
350
14 августа 2006 года
cheburator
589 / / 01.06.2006
[QUOTE=Alexandoros]Специально для туго развитых - ВСЕ ТЕЛЕПАТЫ УЕХАЛИ В ОТПУСК, НА МОРЕ. Поэтому для смертных желательно увидеть ТЕКСТ ОШИБКИ.[/QUOTE]
Что-то у них отпуск затянулся. Когда вернутся-то? :)
1.8K
14 августа 2006 года
pod
144 / / 05.04.2006
может форумчане и разъехались но кто тут стем и будем говорить.

через ту ошибку переехали и с вашей помощю и сам спосибо.
я не новый стринг создаю я просто практикую с перегрузкой, я ведь новичёк в этом деле.

а можите сказать почему:
"binary operator+ has too many parameters"?
"binary '+' : 'String' does not define this operator or a conversion to a type acceptable to the predefined operator"

String &String::operator +(String rstr,String lstr)
{
sentence=new char [strlen(rstr.sentence)+strlen(lstr.sentence)+1];
strcpy(sentence,lstr.sentence);
strcat(sentence,rstr.sentence);

return *this;
}

где char* sentense;
398
15 августа 2006 года
Alexandoros
630 / / 21.10.2005
Патамуша оператор_член_класа принимает на 1 параметр меньше - только правый, левым параметром является сам объект класа. Ферштейн?
1.8K
15 августа 2006 года
pod
144 / / 05.04.2006
прямо в десятку. спосибо
я исправил всё но тут когда я проважу такую операцию
s3=s2+s1;
вроди все праходит. с кодом проблем нет.
праходит оператор = и кода возвращаетса к s3=s2+s1;
выкидывает какойто ERRROR и придлагает остановить програму
249
15 августа 2006 года
DissDoc
639 / / 01.10.2004
Во первых, пиши нормально, а то ты своими ошибками мне мозг разрываешь! И "какой-то Error" - скрин ошибки кинь! А то сломанный телефон - плохая информативная основа.
1.8K
16 августа 2006 года
pod
144 / / 05.04.2006
ok ok plz не злись.
кажетса я нащёл ту проблему готорая тормозит меня.

вот что не нравитса компилятору:
friend ostream &operator<<(ostream&,Rational);
как только делаю такое объявление так сразу выдаётса следующее:
1) error C2143: syntax error : missing ';' before '&'
2) error C2433: 'ostream' : 'friend' not permitted on data declarations
3) error C2501: 'ostream' : missing storage-class or type specifiers
4) error C2061: syntax error : identifier 'ostream'
5) error C2501: 'Rational::operator`<<'' : missing storage-class or type specifiers
6) error C2805: binary 'operator <<' has too few parameters
7) error C2143: syntax error : missing ';' before '&'
8) error C2433: 'ostream' : 'friend' not permitted on data declarations
9) error C2501: 'ostream' : missing storage-class or type specifiers
10)error C2061: syntax error : identifier 'ostream'
11)error C2501: 'Rational::operator`<<'' : missing storage-class or type specifiers
12)error C2805: binary 'operator <<' has too few parameters

и это всё на ту одну нещастную строчку;
1.8K
16 августа 2006 года
pod
144 / / 05.04.2006
и всё это происходит тогда когда я объявляю класс в отделно заголовочном фаиле:
# ifndef ratoinal_h
# define rational_h

class rational{
friend ostream &operator<<(ostream&,Rational);
public:
.
.
.
private:
.
.
.

};

#endif
6.9K
16 августа 2006 года
RZ_RZ
53 / / 09.06.2005
 
Код:
friend ostream &operator<<(ostream&,Rational);
а зачем там запятая?
1.8K
16 августа 2006 года
pod
144 / / 05.04.2006
оператору передаютса 2 переменые
одна типа ostream& и другая Rational типа.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог