一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

实例1:构造器及其参数的继承应用

 1 #include <iostream>
 2 #include <string>
 3 
 4 class Animal//定义Animal类
 5 {
 6 public:
 7     std::string mouth;
 8     std::string name;
 9     
10     Animal(std::string theName);//类Animal的构造器 
11     void eat();
12     void sleep();
13     void drool();//流鼻涕
14 };
15 Animal::Animal(std::string theName)//类Animal构造器函数 
16 {
17     name = theName;
18 }
19 
20 class Pig:public Animal//类Pig继承于类Animal
21 {
22 public:
23     Pig(std::string theName);//类Pig的构造器
24     void climb();
25 };
26 Pig::Pig(std::string theName):Animal(theName)//类Pig的构造函数继承于类Animal的构造函数 
27 {
28     
29 } 
30 
31 class Turtle:public Animal//类Turtle继承于类Animal
32 {
33 public:
34     Turtle(std::string theName);//类Pig的构造器
35     void swim();
36 };
37 Turtle::Turtle(std::string theName):Animal(theName)//类Turtle的构造函数继承于类Animal的构造函数参数 
38 {
39     
40 }
41 
42 void Animal::eat()//Animal类中的方法函数
43 {
44     std::cout << "I'm eatting!" << std::endl;
45 }
46 void Animal::sleep()
47 {
48     std::cout << "I'm sleeping!Don't disturb me!" << std::endl;
49 }
50 void Animal::drool()
51 {
52     std::cout << "我是公的,看到母的会流口水 流口水。。。" << std::endl;
53 }
54 
55 void Pig::climb()//类Pig中的climb方法函数
56 {
57     std::cout << "我是一只漂亮的小母猪猪,我会上树,邱。。。" << std::endl;
58 }
59 void Turtle::swim()//类Turtle中的swim方法函数
60 {
61     std::cout << "我是一只小甲鱼,当母猪抓我,我就游到海里,哈。。。" << std::endl;
62 }
63 int main()
64 {
65     Pig pig("小猪猪");//定义一个对象pig,由于其继承于类Animal,
66     //且构造函数也继承于类Animal的构造函数,所以参数"小猪猪"将赋值给类pig中的名字属性name 
67     Turtle turtle("小甲鱼");//定义一个对象turtle
68     
69     std::cout << "这只猪的名字是:" << pig.name << std::endl;
70     std::cout << "每只乌龟都有个伟大的名字:" << turtle.name << std::endl; 
71 
72     pig.eat();
73     turtle.eat();
74     pig.climb();
75     turtle.swim();
76 
77     return 0;
78 }

实例2:构造器与析构器的综合运用

 1 #include <iostream>
 2 #include <string>
 3 //由于继承,编译后将首先调用基类构造器,然后调用子类构造器,然后运行其它程序;
 4 //运行到程序末尾时,先调用子类析构器,让后调用基类析构器。
 5 class BaseClass//定义基类BaseClass 
 6 {
 7 public:
 8     BaseClass();//构造器
 9     ~BaseClass();//析构器
10     
11     void doSomething();    
12 };  
13 
14 class SubClass : public BaseClass定义子类SubClass,类SubClass继承于类BaseClass 
15 {
16 public:
17     SubClass();
18     ~SubClass();
19 };
20 
21 BaseClass::BaseClass()//类BaseClass构造器函数 
22 {
23     std::cout << "进入基类构造器。。。\n";
24     std::cout << "我在基类构造器里边干了某些事。。。\n\n";
25 }
26 
27 BaseClass::~BaseClass()//类BaseClass析构器函数 
28 {
29     std::cout << "进入基类析构器。。。\n";
30     std::cout << "我在基类析构器里边干了某些事。。。\n\n";
31 }
32 void BaseClass::doSomething()//基类的doSomething函数 
33 {
34     std::cout << "我干了某些事。。。\n\n";
35 } 
36 SubClass::SubClass()//子类SubClass的构造函数 
37 {
38     std::cout << "进入子类构造器。。。\n";
39     std::cout << "我在子类构造器里面还干了某些事。。。\n\n";
40 }
41 SubClass::~SubClass()//子类SubClass的析构函数 
42 {
43     std::cout << "进入子类析构器。。。\n";
44     std::cout << "我在子类析构器里面还干了某些事。。。\n\n";
45 }
46 int main()
47 {
48     SubClass subclass;
49     subclass.doSomething();
50     
51     std::cout << "完事,收工!\n"; 
52     return 0;
53 }
posted on 2023-08-18 14:48  一杯清酒邀明月  阅读(15)  评论(0编辑  收藏  举报