Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2010, 19:23   #1
pavel282
 
Регистрация: 11.09.2010
Сообщений: 9
По умолчанию c++ перегрузка операторов

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


#include<iostream>
#include<string>
using namespace std;

class string
{
public:
string(char*);
void str_append(char*);
void chr_minus(char);
void show_string(void);

private:
char data[256];
};



string::string(char*str)
{
strcpy(data,str);

}


void string::str_append(char*str)
{
strcat(data,str);
}



void string::chr_minus(char letter)
{
char temp[256];
int i;
int j;
for(i=0,j=0;dat[i];i++);
if(data[i]!=letter)
temp[j++]=data[i];
temp[j]=NULL;
strcpy(data,temp);
}



void string::show_string(void)
{
cout<<data<<endl;
}



int main()
{
string title("uchimsa programmirovat na c++");
string lesson("peregruzka operatorov");
title.show_string();
title.str_append("ya uchus");
title.show_string();
lesson.show_string();
lesson.chr_minus('p');
lesson.show_string();



system("pause");
return 0;
}
pavel282 вне форума Ответить с цитированием
Старый 11.09.2010, 20:02   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

А где здесь перегрузка?Что-то я не нашёл её здесь(хотя я,конечно, плохо разбираюсь в С++)
_-Re@l-_ вне форума Ответить с цитированием
Старый 11.09.2010, 20:11   #3
ThisIzGame
Форумчанин
 
Регистрация: 31.08.2009
Сообщений: 161
По умолчанию

исправь название класса string, хотя бы на String. А то у тебя получается конфликт с контейнером string...
Код:
class String
{
public:
String(char*);
void str_append(char*);
void chr_minus(char);
void show_string(void);

private:
char data[256];
};



String::String(char*str)
{
strcpy(data,str);

}


void String::str_append(char*str)
{
strcat(data,str);
}



void String::chr_minus(char letter)
{
char temp[256];
int i;
int j;
for(i=0,j=0;data[i];i++); 
if(data[i]!=letter)
temp[j++]=data[i];
temp[j]=NULL;
strcpy(data,temp);
}



void String::show_string(void)
{
cout<<data<<endl;
}
int main()
{
String title("uchimsa programmirovat na c++");
String lesson("peregruzka operatorov");
title.show_string();
title.str_append("ya uchus");
title.show_string();
lesson.show_string();
lesson.chr_minus('p');
lesson.show_string();



system("pause");
return 0;
}
код компилится, работоспособность не проверял...

Цитата:
А где здесь перегрузка?Что-то я не нашёл её здесь(хотя я,конечно, плохо разбираюсь в С++)
всё верно, её здесь нет...
ThisIzGame вне форума Ответить с цитированием
Старый 11.09.2010, 20:12   #4
pavel282
 
Регистрация: 11.09.2010
Сообщений: 9
По умолчанию с++ перегрузка операторов

это прелюдия к перегрузке, так мне будет проще понять перегрузку, я с этим-то пока не разберусь.
pavel282 вне форума Ответить с цитированием
Старый 11.09.2010, 20:18   #5
pavel282
 
Регистрация: 11.09.2010
Сообщений: 9
По умолчанию с++ перегрузка операторов

спасибо большое, уже лучше,

только вот еще проблема выскочила:


temp[j]=NULL; пишет warning assignment
pavel282 вне форума Ответить с цитированием
Старый 11.09.2010, 20:22   #6
pavel282
 
Регистрация: 11.09.2010
Сообщений: 9
По умолчанию с++ перегрузка операторов

все всем спасибо, удалил эту строку теперь все работает
pavel282 вне форума Ответить с цитированием
Старый 11.09.2010, 20:35   #7
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,986
Сообщение

Цитата:
Сообщение от pavel282 Посмотреть сообщение
Код:
#include<iostream>
#include<string>
using namespace std;

class String
{
  public:
    String(char*);
    void str_append(char*);
    void chr_minus(char);
    void show_string(void);
    
  private:
    char data[256];
};



String::String(char*str)
{
  strcpy(data,str);

}


void String::str_append(char*str)
{
  strcat(data,str);
}



void String::chr_minus(char letter)
{
   char temp[256];
   int i;
   int j;
   for(i=0,j=0;dat[i];i++); 
   if(data[i]!=letter)
   temp[j++]=data[i];
   temp[j]=NULL;
   strcpy(data,temp);
}



void String::show_string(void)
{
  cout<<data<<endl;
}



int main()
{
  String title("uchimsa programmirovat na c++");
  String lesson("peregruzka operatorov");
  title.show_string();
  title.str_append("ya uchus");
  title.show_string();
  lesson.show_string();
  lesson.chr_minus('p');
  lesson.show_string();



system("pause");
return 0;
}
а если упростить код?

Код:
#include<iostream>
#include<string.h>
using namespace std;

class String
{
  public:
    String(char*str){strcpy(data,str);}
    void str_append(char*str){strcat(data,str);}
    void chr_minus(char);
    void show_string(void){cout<<data<<endl;}

  private:
    char data[256];
};



void String::chr_minus(char letter)
{
   char temp[256];
   int i;
   int j;
   for(i=0,j=0;data[i];i++);
   if(data[i]!=letter)
   temp[j++]=data[i];
   temp[j]=NULL;
   strcpy(data,temp);
}

int main()
{
          String title("uchimsa programmirovat na c++");
          String lesson("peregruzka operatorov");
          title.show_string();
          title.str_append("ya uchus");
          title.show_string();
          lesson.show_string();
          lesson.chr_minus('p');
          lesson.show_string();



system("pause");
return 0;
}
p.s. жаль, перегрузку операторов так и не увидел...

Последний раз редактировалось vasek123; 11.09.2010 в 21:09.
vasek123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перегрузка операторов(С++) Сергей AfeR Помощь студентам 0 16.06.2010 18:34
Перегрузка операторов raspberry Общие вопросы C/C++ 2 06.04.2010 00:19
Перегрузка операторов. Macb3th Общие вопросы C/C++ 5 01.04.2010 21:14
Перегрузка операторов (С++) Перчитель Помощь студентам 1 03.12.2008 18:46
Перегрузка операторов, Организация перегрузки операторов chagin_yav Помощь студентам 2 12.05.2008 09:15