Syronex: software solutions

C++ Quiz

Question 1

Can you name the special functions a C++ compiler can create implicitly?
tip answer

Question 2

What are the two ways to achieve automatic type conversion from type X to type Y?
tip answer

Question 3

Which of one of these represents an assignment operation?
  1. C c1 = c2;
  2. c3 = c4;
  3. both
tip answer

Question 4

Given the class Qz4:
class Qz4 {
  enum{ arr_l=5 };
  int *arr; // array of int
  int seed;
  char *name;

 public:

  Qz4(char *str, int i) : name(str), seed(i) {
    arr = new int[arr_l];
    for(int i=0;i<arr_l;arr[i]=seed + i++);
  }

   ~Qz4() {
    delete [] arr;
    cout << "arr destroyed for " << name << endl;
  }

  void print_arr() {
    cout << name << ":" << endl;
    for(int i=0;i<arr_l;i++) cout << "Element #" << i << "=" << get_arr(i) << endl;
  }

  void set_arr(int idx, int val) {
    arr[idx]=val;
  }

  int get_arr(int idx) {
    return arr[idx];
  }
};

Can you predict the output of the program below?
int main() {
  Qz4 q1("Q1",0), q2("Q2",10);
  q2=q1;
  q1.set_arr(0, 32);
  q2.set_arr(1, 56);
  q1.print_arr();
  q2.print_arr();
}
answer