#include <iostream>
#include <algorithm> // std::copy, std::fill

class A {
  public:
  static const size_t Size=8;

  A(double a=0, double b=0, double c=0, double *ar=0):a_(a),b_(b),c_(c) { 
     if (ar != 0) {
       for (size_t i=0; i != Size; ++i)
         ar_[i] = ar[i];
     }
     else {
       for (size_t i=0; i != Size; ++i)
         ar_[i] = 0;
     }
  }

  void print() const { 
    std::cout << a_ << ' ' << b_ << ' ' << c_ << std::endl << '{';
    for (size_t i=0; i != Size; ++i) {
       if (i != 0) std::cout << ',';
       std::cout << ar_[i];
    }
    std::cout << '}' << std::endl;
  }

  private:
    double a_, b_, c_;
    double ar_[Size];

};

int main() {
	A a1;
    a1.print();
    A a2 (1,2,3);
    a2.print();

    double x[A::Size] = { 11,12,13,14 };
    A a3 (4,5,6,x);
    a3.print();

    A a4 = a3;
    a4.print();    
}