C++语言: Codee#25744
01 /*
02 对象切片
03 此处为传值 注意与传地址相比较
04 */
05 #include <iostream>
06 #include <string>
07 using namespace std;
08
09 class Pet
10 {
11 string pname;
12 public:
13 Pet(const string& name)
14 : pname(name)
15 {}
16 virtual string name() const
17 {
18 return pname;
19 }
20 virtual string description() const
21 {
22 return "This is " + pname;
23 }
24 };
25
26 class Dog: public Pet
27 {
28 string favoriteActivity;
29 public:
30 Dog(const string& name, const string& activity)
31 : Pet(name), favoriteActivity(activity)
32 {}
33 string description() const
34 {
35 return Pet::name() + " likes to " +
36 favoriteActivity;
37 }
38 };
39
40 void describe(Pet p)
41 {
42 cout << p.description() << endl;
43 }
44
45 int main()
46 {
47 Pet p("Alfred");
48 Dog d("Fluffy", "sleep");
49 describe(p);
50 describe(d);
51
52 return 0;
53 }
54 /*
55 This is Alfred
56 This is Fluffy
57
58 Process returned 0 (0x0) execution time : 0.070 s
59 Press any key to continue.
60
61 */
02 对象切片
03 此处为传值 注意与传地址相比较
04 */
05 #include <iostream>
06 #include <string>
07 using namespace std;
08
09 class Pet
10 {
11 string pname;
12 public:
13 Pet(const string& name)
14 : pname(name)
15 {}
16 virtual string name() const
17 {
18 return pname;
19 }
20 virtual string description() const
21 {
22 return "This is " + pname;
23 }
24 };
25
26 class Dog: public Pet
27 {
28 string favoriteActivity;
29 public:
30 Dog(const string& name, const string& activity)
31 : Pet(name), favoriteActivity(activity)
32 {}
33 string description() const
34 {
35 return Pet::name() + " likes to " +
36 favoriteActivity;
37 }
38 };
39
40 void describe(Pet p)
41 {
42 cout << p.description() << endl;
43 }
44
45 int main()
46 {
47 Pet p("Alfred");
48 Dog d("Fluffy", "sleep");
49 describe(p);
50 describe(d);
51
52 return 0;
53 }
54 /*
55 This is Alfred
56 This is Fluffy
57
58 Process returned 0 (0x0) execution time : 0.070 s
59 Press any key to continue.
60
61 */
C++语言: Codee#25745
01 /*
02 地址传递
03 启用虚函数机制
04 */
05 #include <iostream>
06 #include <string>
07 using namespace std;
08
09 class Pet
10 {
11 string pname;
12 public:
13 Pet(const string& name)
14 : pname(name)
15 {}
16 virtual string name() const
17 {
18 return pname;
19 }
20 virtual string description() const
21 {
22 return "This is " + pname;
23 }
24 };
25
26 class Dog: public Pet
27 {
28 string favoriteActivity;
29 public:
30 Dog(const string& name, const string& activity)
31 : Pet(name), favoriteActivity(activity)
32 {}
33 string description() const
34 {
35 return Pet::name() + " likes to " +
36 favoriteActivity;
37 }
38 };
39
40 void describe(Pet* p)
41 {
42 cout << p->description() << endl;
43 }
44
45 int main()
46 {
47 Pet* p = new Pet("Alfred");
48 Dog* d = new Dog("Fluffy", "sleep");
49 describe(p);
50 describe(d);
51
52 return 0;
53 }
54 /*
55 This is Alfred
56 Fluffy likes to sleep
57
58 Process returned 0 (0x0) execution time : 0.059 s
59 Press any key to continue.
60
61
62
63 */
02 地址传递
03 启用虚函数机制
04 */
05 #include <iostream>
06 #include <string>
07 using namespace std;
08
09 class Pet
10 {
11 string pname;
12 public:
13 Pet(const string& name)
14 : pname(name)
15 {}
16 virtual string name() const
17 {
18 return pname;
19 }
20 virtual string description() const
21 {
22 return "This is " + pname;
23 }
24 };
25
26 class Dog: public Pet
27 {
28 string favoriteActivity;
29 public:
30 Dog(const string& name, const string& activity)
31 : Pet(name), favoriteActivity(activity)
32 {}
33 string description() const
34 {
35 return Pet::name() + " likes to " +
36 favoriteActivity;
37 }
38 };
39
40 void describe(Pet* p)
41 {
42 cout << p->description() << endl;
43 }
44
45 int main()
46 {
47 Pet* p = new Pet("Alfred");
48 Dog* d = new Dog("Fluffy", "sleep");
49 describe(p);
50 describe(d);
51
52 return 0;
53 }
54 /*
55 This is Alfred
56 Fluffy likes to sleep
57
58 Process returned 0 (0x0) execution time : 0.059 s
59 Press any key to continue.
60
61
62
63 */