2013-10-05 3 views
-4

Когда вы передаете флаги функции, что использует оператор '|' делать и каково его собственное имя? Как я могу реализовать это в своих собственных функциях? Спасибо за вашу помощь.C++ - Оператор вертикальной линии. Что оно делает?

+1

Ответ на каждый оператор старшинства диаграммы, известных человеку. – chris

+2

Это очень фундаментально. Если вы этого не знаете, у вас должна быть готовая ссылка (книга или закладка), чтобы посмотреть подробности об основном языке. Вам не нужно спрашивать здесь. –

+0

Извините, я не думал. В следующий раз это будет лучше. –

ответ

2

Это побитовое ИЛИ. Например:

(1 | 2) == 3 
(5 | 3) == 7 
1

Ну, это зависит. Оператор вертикальной линии | рисует одну вертикальную линию, в значительной степени похожую на оператора горизонтальной линии «-» рисует одну горизонтальную линию. Есть также братья || и = нарисовать две параллельные вертикальные или горизонтальные линии, соответственно:

#include <algorithm> 
#include <iostream> 
#include <iterator> 

struct graphic 
{ 
    void operator-(int n) { 
     *std::fill_n(std::ostream_iterator<char>(std::cout), n, '-')++ = '\n'; 
    } 
    void operator=(int n) { 
     *std::fill_n(std::ostream_iterator<char>(std::cout), n, '=')++ = '\n'; 
    } 
    void operator|(int n) { 
     std::fill_n(std::ostream_iterator<char>(std::cout, "\n"), n, '|'); 
    } 
    void operator||(int n) { 
     std::fill_n(std::ostream_iterator<char const*>(std::cout, "\n"), n, "||"); 
    } 
}; 

int main() 
{ 
    graphic g; 
    g - 10; 
    g = 10; 
    g | 4; 
    g || 4; 
} 
+0

Веселый, браво – Slava

Смежные вопросы