печать с использованием одного \ n - PullRequest
0 голосов
/ 27 октября 2009

Я почти уверен, что все вы знакомы с концепцией Big4, и у меня есть несколько вещей, которые можно распечатать в каждом из конструктора, присваивания, деструктора и конструктора копирования.

Ограничение таково:

Я не могу использовать более одного символа новой строки (например, ƒn или std :: endl) в любом методе

У меня может быть метод с именем print, так что я предполагаю, что print - это то место, куда я положу этот драгоценный и единственный '\ n', моя проблема в том, как метод print может печатать разные вещи на каждом из элементов хотите печатать в каждом из Big4? Любая идея? Может быть, перегрузка Big4?

Ответы [ 3 ]

1 голос
/ 27 октября 2009

print должен принимать параметр, содержащий информацию для вывода на экран (sans '\ n'), а затем вызывать метод вывода c ++ с добавлением в строку '\ n' к передаваемой информации.

примечание: без кода, потому что для меня это пахнет домашней работой ...

1 голос
/ 27 октября 2009

Может быть, я не совсем понимаю вопрос, потому что он задается довольно неловко, но разве вы не можете просто иметь функцию с именем newline, которая получает ostream в качестве аргумента, а затем просто выводит '/ n' в этот выходной поток ? Тогда вы можете просто вызывать это бесконечно много раз, все еще соблюдая произвольное правило «одной новой строки».

, например

(редактировать: код удален, "пахнет домашней работой")

0 голосов
/ 27 октября 2009

Я не уверен, что полностью понимаю, чего вы пытаетесь достичь. Почему вы можете использовать только одну новую строку? Что мешает просто написать свой код только с одной новой строкой? Например, я делал такие вещи раньше.

for(int i = 0; i < 10; i++) {
    cout << i << " ";
}
cout << std::endl;

Если вам нужно что-то более сложное, возможно, вы захотите создать какой-нибудь объект отслеживания печати, который будет сохранять флаг для того, была ли напечатана новая строка, и соответствующим образом корректировать его поведение. Похоже, что это может быть немного слишком сложно.

...