C + -
(pronounced "C more or less")

Unlike C++, which is an object oriented language, C+- is a subject oriented
language.  Each C+- class instance known as a subject,  holds hidden
members,
known as prejudices or undeclared preferences, which are impervious to
outside messages, as well as public members known as boasts or claims.  The
following C operators are overridden as shown:

>       better than
<       worse than
>>      much better than
<<      forget it
!       not on your life
==      comparable, other things being equal.

C+- is a strongly typed language based on stereotyping and self-righteous
logic.  The Boolean variables TRUE and FALSE  (known as  constants in less
realistic languages) are supplemented with CREDIBLE  and DUBIOUS, which are
fuzzier than Zadeh's traditional fuzzy  categories. All Booleans can be
declared with the modifiers strong and  weak.  Weak implication is said to
"preserve deniability" and was added  at the request of the D.O.D. to ensure
compatability with future  versions of Ada. Well-formed falsehoods (WFFs)
are
assignment-compatible with all Booleans. "What-if" and "why-not"
interactions are aided by the special conditional "evenifnot X then Y."

C+- supports information hiding and, among friend classes only, rumor
sharing.  Borrowing from the Eiffel lexicon, non-friend classes can be
killed by arranging contracts.  Note that friendships are intransitive,
volatile, and non-Abelian.

Single and multiple inheritance mechanisms are implemented with random
mutations.  Disinheritance rules are covered by a complex probate protocol.
In addition to base, derrived, virtual, and abstract classes, C+- supports
gut classes.  In certain locales, polygamous derivations and bastard classes
are permitted.  Elsewhere, loose coupling between classes is illegal, so the
marriage and divorce operators may be needed:

marriage (MParent1, FParent1);
// child classes can now be derrived
sclass MySclass: public MParent1, FParent1
{       //  define MySclass

sclass YourSclass: public MParent1, FParent2
// illegitimate

divorce (MParent1, FParent1);

marriage (MParent1, FParent2);
sclass YourSclass: public MParent1, FParent2
{  //  OK now

Operator precedence rules can be suspended with the directive #pragma dwim,
known as the "Do what I mean" pragma.  ANSIfication will be firmly resisted.
C+-'s slogan is "Be Your Own Standard."