C++学习之构造函数和析构函数
1 /* 2 3 4 实验启示1:构造子类对象时,先调用父类构造函数,后调用子类构造函数 5 实验启示2:析构子类对象时,先调用子类析构函数,后调用父类析构函数 6 实验启示3:在这个对象生命周期结束时,析构函数会自动调用 7 8 9 */ 10 11 #include<iostream> 12 13 int flag; 14 15 class Animal 16 { 17 18 public: 19 20 int weight; 21 int length; 22 double hungry_rate; 23 24 Animal(void); 25 ~Animal(){flag++;std::cout<<flag<<". I‘m ~Animal(),now."<<std::endl;} 26 27 void eat(void); 28 29 }; 30 31 Animal::Animal() 32 { 33 flag++; 34 35 std::cout<<flag<<". I‘m Animal,now."<<std::endl; 36 37 weight=25; 38 Animal::length=10; 39 Animal::hungry_rate=70; 40 41 } 42 43 void Animal::eat(void) 44 { 45 46 std::cout<<"The Animal is eating"<<std::endl; 47 48 } 49 50 class Fish:public Animal 51 { 52 53 public: 54 55 Fish(){ flag++;std::cout<<flag<<". I‘m Fish,now."<<std::endl;} 56 ~Fish(){flag++;std::cout<<flag<<". I‘m ~Fish(),now."<<std::endl;} 57 58 void swim() 59 { 60 61 std::cout<<"The Fish Is Swimming!"<<std::endl; 62 63 } 64 }; 65 66 int main() 67 { 68 69 Fish x; 70 71 x.eat(); 72 73 std::cout<<x.hungry_rate; 74 75 x.swim(); 76 77 return 0; 78 }
运行结果:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。