//: C10:NamespaceInt.h
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt

#ifndef NAMESPACEINT_H
#define NAMESPACEINT_H

namespace Int
{

enum sign { positive, negative };

class Integer
{

int i;
sign s;
public:

Integer(int ii = 0)
: i(ii),
s(i >= 0 ? positive : negative)
{}

/* Il costruttore sopra, oltre ad assegnare alla variabile "i" il valore di "ii", assegna ad "s" "positive" se "i>0", oppure "negative" se "i<0". */

sign getSign() const { return s; }
void setSign(sign sgn) { s = sgn; }
/* ... */

};

}
#endif
// NAMESPACEINT_H ///:~