C++语言: Codee#2574401/
02对象切片
03此处为传值 注意与传地址相比较
04/
05#include
06#include
07usingnamespacestd;
08
09classPet
10{
11stringpname;
12public:
13Pet(conststring&name)
14:pname(name)
15{}
16virtualstringname()const
17{
18returnpname;
19}
20virtualstringdescription()const
21{
22return"This is "+pname;
23}
24};
25
26classDog:publicPet
27{
28stringfavoriteActivity;
29public:
30Dog(conststring&name,conststring&activity)
31:Pet(name),favoriteActivity(activity)
32{}
33stringdescription()const
34{
35returnPet::name()+" likes to "+
36favoriteActivity;
37}
38};
39
40voiddescribe(Petp)
41{
42cout<<p.description()<<endl;
43}
44
45intmain()
46{
47Petp("Alfred");
48Dogd("Fluffy","sleep");
49describe(p);
50describe(d);
51
52return0;
53}
54/
55This is Alfred
56This is Fluffy
57
58Process returned 0 (0x0) execution time : 0.070 s
59Press any key to continue.
60
61/
C++语言: Codee#2574501/
02地址传递
03启用虚函数机制
04/
05#include
06#include
07usingnamespacestd;
08
09classPet
10{
11stringpname;
12public:
13Pet(conststring&name)
14:pname(name)
15{}
16virtualstringname()const
17{
18returnpname;
19}
20virtualstringdescription()const
21{
22return"This is "+pname;
23}
24};
25
26classDog:publicPet
27{
28stringfavoriteActivity;
29public:
30Dog(conststring&name,conststring&activity)
31:Pet(name),favoriteActivity(activity)
32{}
33stringdescription()const
34{
35returnPet::name()+" likes to "+
36favoriteActivity;
37}
38};
39
40voiddescribe(Petp)
41{
42cout<<p->description()<<endl;
43}
44
45intmain()
46{
47Petp=newPet("Alfred");
48Dogd=newDog("Fluffy","sleep");
49describe(p);
50describe(d);
51
52return0;
53}
54/
55This is Alfred
56Fluffy likes to sleep
57
58Process returned 0 (0x0) execution time : 0.059 s
59Press any key to continue.
60
61
62
63*/原文链接: https://www.cnblogs.com/invisible/archive/2012/03/08/2384841.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/43704
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!