Por que 256 para um caractere assinado é indefinido em C ++

Lendo o livro da 5ª edição do C ++ Primer, percebi quesigned char com um valor de256 é indefinido. Eu decidi tentar isso, e vi issostd::cout não funcionou para essa variável char. (Impresso Nada).

Mas no C, a mesma coisasigned char c = 256; daria um valor0 para ochar c.

Eu tentei procurar, mas não encontrei nada.

Alguém pode me explicar por que isso é o caso em C + +?

Edit: Eu entendo que 256 é 2 bytes, mas por que não acontece a mesma coisa que em C, para C ++?

questionAnswers(6)

yourAnswerToTheQuestion