Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как ввести данные в динамический массив структур? https://www.cyberforum.ru/ cpp-beginners/ thread123954.html
Подскажите пожалуйста, можно ли вводить данные в динамический массив структур c помощью cin >> следующим образом: #include <iostream> using namespace std; const int Arsize = 20; struct...
Записи C++
Здравствуйте! Помогите пожалуйста преобразовать код программы на паскале, в С++: program Project2; uses crt; type tv=record mark: string; st:real; mag:string;
C++ Упорядочивание символьного массива указателей
#include <iostream> #include <windows.h> //Для начала установите вручную шрифт Lucida Console в свойствах окна консоли. #include <fstream> using namespace std; void up(int *s); char *sp(int...
C++ Описать класс "домашняя библеотека" Задание: Описать класс "домашняя библеотека",поиск книг по автору и году выдачи, предусмотреть добавленние книг в библеотеку и удаление книг из нее. Как описывать такой класс я знаю, но не могу... https://www.cyberforum.ru/ cpp-beginners/ thread123937.html
C++ Сортировка c вычислением адреса https://www.cyberforum.ru/ cpp-beginners/ thread123929.html
Никак не могу разобратса в алгоритмен сортировка c вычислением адреса. Нужен исходный код
C++ Задать двумерный массив с помощью линейного односвязного списка
Помогите решить задачу: "Задать двумерный массив с помощью линейного односвязного списка". Может кто знает, буду очень благодарен!
Подсчитать число отрицательных частиц не и ни C++
В некотором тексте (например Ни одна система не остается неизменной) определить отрицательные частицы не и ни :) помогите пожалуйста сделать задачу на С
C++ Динамический массив Даны действительные числа а1,..аn Получим:min(a1*a16,a2*a17,..,a15*an) заранее большое спасибо=)))) Добавлено через 3 минуты цикл должен иметь такие переменные A A(km/2+I) https://www.cyberforum.ru/ cpp-beginners/ thread123864.html
C++ Инициализация игры... https://www.cyberforum.ru/ cpp-beginners/ thread123833.html
Помогите пожалуйста... Переискал по всем известным мне форумам но так и не нашел... Как проверить через С++ сколько игроков на сервере (на движках ХЛ, ХЛ2, КОД), какая карта и тп, можете помочь?...
C++ Проверить синтаксические ошибки слов текста, хранящегося в файле программно Как написать программу, при помощи которой можно проверять синтаксические ошибки слов текста, хранящегося в файле. https://www.cyberforum.ru/ cpp-beginners/ thread123828.html
8 / 8 / 0
Регистрация: 17.04.2010
Сообщений: 112
0

перегрузка операций. особенности.

30.04.2010, 19:29. Просмотров 861. Ответов 11
Метки (Все метки)

Здравствуйте.
Есть вот такой кусок кода:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <iostream>
using namespace std;
 
class stroka
{
   private:
      enum {SZ = 100};
      char str[SZ];
   public:
      stroka()
      {str[0] = '\0';}
      stroka(char s1[])
      { strcpy(str, s1);}
      void my_show() //показать текст
      {
         cout<<str<<endl;
      }
      stroka operator+(stroka s2);
      
};
stroka stroka::operator+(stroka s2)
         {
            strcat(str, s2.str);
            return stroka(str);
         }
 
int main()
{
   
   setlocale(LC_ALL, "RUSSIAN");
   stroka s1("Кот");
   stroka s2("Бегемот");
   
   
   s1.my_show();
   s2.my_show();
   s1 = s1+s2;  
   s1.my_show();
   s1 = s1 + " - хороший кот!";
   s1.my_show();
  
   cin.ignore().get();
   return 0;
}
Почему РАБОТАЕТ строка s1 = s1 + " - хороший кот!"; - ведь я перегрузил stroka operator+(stroka s2);
По идее ведь не хватает перегрузки stroka operator+(char s2[]); но этого получается и не нужно. раз работает так. значит происходит неявное преобразование типов??где именно и как? я прав?

Вернуться к обсуждению:
перегрузка операций. особенности.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2010, 19:29
Готовые ответы и решения:

Перегрузка операций
#include &lt;iostream&gt; using namespace std; class chislo { public: chislo(); chislo(int...

Перегрузка операций << и >>
Всем добрый день.. У меня такая проблема, не получается перегрузить операторы &lt;&lt; и &gt;&gt; для своего...

ПЕРЕГРУЗКА ОПЕРАЦИЙ
Всем добрый день.Нужна помощь по перегрузкам операций.Написать программу.Кто сможет помочь,буду...

Перегрузка операций - , -- , -=
Создать класс, который хранит целое девятеричное число без знака. Перегрузить операции -, --, -=....

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