//============================================================================
// Name : HelloWorldcpp.cpp
// Author : Lucas
// Version :
// Copyright : @Lucas
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <stdlib.h>
#include <vector>
#include <string.h>
#include <algorithm>
#include <dos.h>
#include <windows.h>
using namespace std;
class Test
{
public:
int a;
Test() {cout << "no parameter" << endl; a = 1;};
Test(int) {cout << "has parameter" << endl; a = 2;};
Test& operator= (const Test& test)
{
cout << "call operator =" << endl;
if (&test != this)
{
this->a = test.a;
}
return *this;
}
Test(const Test& test) {cout << "copy constructor" << endl; this->a = test.a;}
};
int main()
{
// Test t1; //no parameter
// cout << t1.a << endl;
//
// Test t2(); //函数声明。
//// cout << t2.a << endl; //error
//
// Test t3(111); //has parameter
// cout << t3.a << endl;
//
//// Test t4 = Test; //error
//// cout << t4.a << endl;
//
// Test t5 = Test(); //no parameter, copy constructor
// cout << t5.a << endl;
//
// Test t6 = Test(444); //has parameter, copy constructor
// cout << t6.a << endl;
Test t7(11); //has parameter
Test t8 = t7; //copy constructor
cout << t8.a << endl;
// Test t9(22); //has parameter
// Test t10(t9); //copy constructor
// cout << t10.a << endl;
Test t11(33);
Test t12;
t12 = t11; //call operator =
return 0;
}