#include #include #include #include using namespace std; class Octet { public: Octet(int i): number{i} { if ( i < 0 or i > 255 ) { throw logic_error{"Octet outside of range: 0 to 255"}; } } void print() { cout << setw(3) << setfill('0') << number; } private: int number; }; class Adress { public: Adress() : octets(4, 0) {} Adress(int i, int j, int k, int l) : octets{i, j, k, l} {} void print() { octets.at(0).print(); for( vector::size_type i{1}; i < octets.size(); ++i ) { cout << "."; octets.at(i).print(); } } private: vector octets; }; int main() { Adress a1{}; a1.print(); cout << endl; Adress a2{192, 16, 0, 1}; a2.print(); cout << endl; try { Adress a3{256, 0, 0, 0}; } catch(logic_error const& e) { cout << e.what()<< endl; } try { Adress a4{255, -1, 0, 0}; } catch(logic_error const& e) { cout << e.what()<< endl; } }