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

Перегрузка оператора + для сложения двух экземпляров класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поиск в ширину - Неправильно выполняется программа http://www.cyberforum.ru/cpp-beginners/thread1245521.html
ПОМОГИТЕ! ПОЧЕМУ НЕПРАВИЛЬНО ВЫПОЛНЯЕТСЯ ПРОГРАММА? #include<iostream> #include<stdio.h> #include<queue> using namespace std; int main(){
C++ Классы-синглтоны с зависимостями должны удаляться в определенном порядке Здравствуйте! Пишу классы-синглтоны с зависимостями. Храню их в статической памяти. Проблема в том, что они должны удаляться в определенном порядке - я регистрирую зависимости. Однако, когда в конце программы компилятор сам вызывает деструкторы, то, сначала разрушается объект производного класса (я наследую синглтоны от Service), и только потом я могу обработать зависимости, что не есть... http://www.cyberforum.ru/cpp-beginners/thread1245514.html
Как переписать строку из char buf[20] в wchar_t buf1[20]; ? C++
Как переписать строку из char buf в wchar_t buf1; ?
Выделение памяти в процессе выполнения функции C++
есть массив указателей на int, объявленный глобально int* arr; но заранее я не знаю, сколько мне понадобится одномерных массивов - один или все 10. память нужно выделять во время исполнения функции. вопрос: как это сделать? P.S я понимаю, что сделав так void func() { arr = new int; }
C++ Считать массив байт в переменную типа int в обратном порядке http://www.cyberforum.ru/cpp-beginners/thread1245424.html
Есть массив байт: char byData = {0x87, 0xd6, 0x12, 0x00}; Нужно считать его в переменную типа int в обратном порядке, т.е. должно получится hex-число 0x0012D687 Пытаюсь как-то так: int c = 0; c += byData*0x01000000; c += byData*0x00010000; c += byData*0x00000100; c += byData; Ну естественно ничего не выходит. Вместо лидирующих нулей появляются ffff, и в сумме это все дает неверное...
C++ Русский язык в консоли Здравствуйте. Чего-то не разберусь с русским языком. setlocale(LC_ALL,"RUSSIAN"); и setlocale(LC_ALL,"1251"); - классно. Мне нужно вводить выводить с клавиатуры, а так же из текстового файла. Одна из выше строк помогает при работе с файлом, вторая - для клавиатуры. Т.е. один вариант помогает ввести с клавиатуры русский текст, но в то же время при выводе из файла странный набор символов,... подробнее

Показать сообщение отдельно
Gygocopter
10 / 10 / 5
Регистрация: 05.02.2014
Сообщений: 124
21.08.2014, 22:16     Перегрузка оператора + для сложения двух экземпляров класса
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
#include "stdafx.h"
#include "conio.h"
#include <iostream>
#include <clocale>
using namespace::std;
class str_type{
    char string[80];
public:
    str_type(char *str = ""){ strcpy(string, str); }
    str_type operator+(str_type str);
    str_type operator+(char *str);
    void show_str(){ cout << string; }
};
str_type str_type::operator+(str_type str)
{
    str_type temp;
        strcpy(temp.string, string);
        strcat(temp.string, str.string);
        return temp;
}
str_type str_type::operator+(char *str)
{
    str_type temp;
    strcpy(temp.string, string);
    strcat(temp.string, str);
    return temp;
}
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0, "Rus");
    str_type a("Всем "), b("привет"), c;
    c = a + "привет";
    c.show_str();
    _getch();
    return 0;
}
Как перегрузить operator+, чтобы можно было писать c = "привет" + a ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru