// File: test.cpp
// Author: lxw
// Date: 2015-08-11
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <set>
#include <climits>
using namespace std;
int number(){
cout << "hello" << endl;
return 11;
}
class Demo{
private:
int a = number(); //NOTE: [calls before constructor.] NOT ALWAYS call this.
int b = number();
public:
Demo(){
cout << "Constructor Demo()" << endl;
}
Demo(int A):a(A){
cout << "Constructor Demo(int A)" << endl;
}
int getA(){
return this->a;
}
int getB(){
return this->b;
}
};
int main(void){
/*
//NOTE: NOT "hello\nConstructor Demo(int A)" but "Constructor Demo(int A)"
Demo d(3); //Constructor Demo(int A)
cout << d.getA() << endl; //3
cout << endl;
Demo d1; //hello\nConstructor Demo()
cout << d1.getA() << endl; //11
*/
/*
Output:
Constructor Demo(int A)
3
hello
Constructor Demo()
11
*/
Demo d(3); //hello\nConstructor Demo(int A)
cout << d.getA() << endl; //3
cout << d.getB() << endl; //11
cout << endl;
Demo d1; //hello\nhello\nConstructor Demo()
cout << d1.getA() << endl; //11
cout << d1.getB() << endl; //11
/*
Output:
hello
Constructor Demo(int A)
3
11
hello
hello
Constructor Demo()
11
11
*/
return 0;
}