在函数setDay()中,局部变量定义为day时,在函数内赋值时要使用this指针已区分两个day变量;或者局部变量定义为与成员变量不同的名字;
1 #include <iostream>
2 using namespace std;
3 class Data
4 {
5 private:
6 int year;
7 int month;
8 int day;
9 public:
10 Data(int year=2015, int month=8, int day=6):year(year),month(month),day(day){}
11 void show()
12 {
13 cout<<year<<'-'<<month<<'-'<<day<<endl;
14 }
15 void setDay(int day) //or (int d){day=d}; 因为使用变量时遵循就近原则,不用this指针的话左值和右值都代表的是局部变量;
16 {
17 this->day = day;
18 }
19 };
20
21 int main()
22 {
23 Data data;
24 data.show();
25 data.setDay(7);
26 data.show();
27 return 0;
28 }
~