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

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

Войти
Регистрация
Восстановить пароль
 
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
#1

Переопределение оператора <<, класса ofstream - C++

16.10.2013, 19:26. Просмотров 332. Ответов 6
Метки нет (Все метки)

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
#ifndef COUT_RUS_H
#define COUT_RUS_H
#include <iostream>
#include <windows.h>
namespace rus
{
 
class Ccout
{
public:
    friend std::ostream& operator << (std::ostream &f , const char * s)
    {
        char buf[256];
        CharToOem(s,buf);
        f << buf;
        return f;
    }
    Ccout(){}
    ~Ccout(){}
};
Ccout cout;
}
 
#endif // COUT_RUS_H
C++
1
   rus::cout << "русская строка"  ;
Добавлено через 10 секунд
что я делаю не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2013, 19:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переопределение оператора <<, класса ofstream (C++):

Переопределение оператора () для своего класса - C++
У меня вопрос. Как переопределить оператор () для своего класса?Если можно,приведите пример.

Переопределение БИНАРНОГО оператора внутри класса - C++
Подскажите как правильно переопределить оператор + для сласса chislo. class chislo { int val; chislo chislo::operator +(const...

Переопределение оператора ++ - C++
Необходимо переопределить оператор ++ в классе IteratorBase так, чтобы при этом вызывалась функция next(). template &lt;class T&gt; ...

Переопределение оператора == - C++
Здравствуйте. Такая проблема: для поиска требуется сравнить два числа(в 1-ом случае инты, во 2-ом даблы). Для интов все отлично, а для...

Переопределение оператора== - C++
Создал функцию-операцию == для экземпляров класса, однако при выполнении данного кода Trigger.h #pragma once #include...

Переопределение оператора - C++
У меня есть класс вектора. Надо переопределить оператор умножения числа на вектор. class myvector { private: int x,y,z; public:...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
B@R_LOG
18 / 18 / 0
Регистрация: 03.07.2013
Сообщений: 49
16.10.2013, 19:50 #2
трудности с CharToOem
Может поможет.
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
16.10.2013, 19:50 #3
Этот оператор должен быть свободной функцией, а у Вас - член класса Ccout.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
16.10.2013, 20:11  [ТС] #4
C++
1
2
3
4
5
6
7
std::ostream& operator << (std::ostream &f , const char * s)
    {
        char buf[256];
        CharToOem(s,buf);
        std::cout << buf;
        return f;
    }
C++
1
   std::cout <<"русский текст" ;
теперь вылетает ошибка при выполнении
0x10
16.10.2013, 20:17
  #5

Не по теме:

Цитата Сообщение от Fyret Посмотреть сообщение
Этот оператор должен быть свободной функцией, а у Вас - член класса Ccout.
Там friend, так что не надо...

Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
16.10.2013, 21:06 #6
Van111, прошу прощения, поспешил с ответом. Пытаюсь понять, что Вы хотите сделать. Может, так:
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
namespace rus
{
    template< class T >
    class Ccout
    {
    public:
        Ccout(T& t)
            : out( t )
        {
        }
 
        ~Ccout()
        {
        }
 
        Ccout& operator << ( const char* s )
        {
            char buf[256];
            CharToOem( s,buf );
            out << buf;
            return *this;
        }
 
    private:
        T& out;
    };
 
    Ccout< std::ostream > cout( std::cout );
}
...
rus::cout << "русская строка" << " и вторая";
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
16.10.2013, 21:53  [ТС] #7
Fyret, да, спасибо,я уже сделал)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2013, 21:53
Привет! Вот еще темы с ответами:

Переопределение оператора инкремента - C++
В теле класса &quot;Сlocks&quot; описали: Clocks&amp; operator ++(); // Prefix increment operator. Clocks operator ++(int); // Postfix...

Многоугольник. Переопределение оператора += - C++
Здравствуйте. Имеется класс Многоугольник. Преподаватель выдал доп.задания, одно из них переопределить += для добавления вершины (с...

Переопределение оператора в классе - C++
class String { char *mData; static const int c_size = 100; String(); String &amp; operator+=(const String &amp; s) { ...

Переопределение оператора ввода - C++
struct info { int num; string kuda; string type; double cena; int count; }; ifstream &amp;operator &gt;&gt;(ifstream &amp;inp, info...


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

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

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