Appearance
面向对象编程基础(OOP)
使用g++对cpp文件进行编译
把共同
的东西进行抽象
对象实现
c++
1 #include <iostream>
2 using namespace std;
3
4 class Animal
5 {
6 public:
7 int age;
8 int weight;
9 Animal();
10 ~Animal()
11 {
12 cout<<"~Animal()..."<<endl;
13
14 }
15 void speak(void)
16 {
17 cout<<"Animal apeaking...."<<endl;
18 }
19 };
20
21 Animal::Animal(void)
22 {
23 cout<<"Animal()....."<<endl;
24 }
25
26 int main(void)
27 {
28 Animal animal;
29 animal.age = 1;
30 cout << "animal age = "<< animal.age <<endl;
31 animal.speak();
32 return 0;
33 }
34
result:
Animal().....
animal age = 1
Animal apeaking....
~Animal()...
继承与多态
c++
1 #include <iostream>
2 using namespace std;
3
4 class Animal
5 {
6 public:
7 int age;
8 int weight;
9 Animal();
10 ~Animal()
11 {
12 cout<<"~Animal() ..." <<endl;
13 }
14 void speak(void)
15 {
16 cout<<"Animal speak ..."<<endl;
17 }
18 };
19 Animal::Animal(void)
20 {
21 cout<<"Animal() ..."<<endl;
22 }
23
24 class Cat : public Animal
25 {
26 public:
27 char sex;
28 Cat(void){cout<<"Cat()..."<<endl;}
29 ~Cat(void){cout<<"~Cat()..."<<endl;}
30 void speak(void)
31 {
32 cout <<"cat speak .. miaomiao"<<endl;
33 }
34 void eat(void){
35 cout<<"cat eating ..."<<endl;
36 }
37 };
38
39 int main(void)
40 {
41 Cat cat;
42 cat.age = 2;
43 cat.sex = 'F';
44 cout << "cat.age:"<<cat.age<<endl;
45 cout << "cat.sex:"<<cat.sex<<endl;
46 cat.speak();
47 cat.eat();
48 return 0;
49 }
result:
Animal() ...
Cat()...
cat.age:2
cat.sex:F
cat speak .. miaomiao
cat eating ...
~Cat()...
~Animal() ...
虚函数与纯虚函数
- virtual修饰的函数
C++
1 #include <iostream>
2 using namespace std;
3
4 class Animal
5 {
6 public:
7 int age;
8 int weight;
9 Animal();
10 ~Animal()
11 {
12 cout<<"~Animal() ..." <<endl;
13 }
14 virtual void speak(void)
15 {
16 cout<<"Animal speak ..."<<endl;
17 }
18 };
19 Animal::Animal(void)
20 {
21 cout<<"Animal() ..."<<endl;
22 }
23
24 class Cat : public Animal
25 {
26 public:
27 char sex;
28 Cat(void){cout<<"Cat()..."<<endl;}
29 ~Cat(void){cout<<"~Cat()..."<<endl;}
30 void speak(void)
31 {
32 cout <<"cat speak .. miaomiao"<<endl;
33 }
34 void eat(void){
35 cout<<"cat eating ..."<<endl;
36 }
37 };
38
39 int main(void)
40 {
41 Cat cat;
42 Animal *p = &cat;
43 p->speak();//使用父类的类调用子类的方法
44 cat.speak();
45 return 0;
46 }
result:
Animal() ...
Cat()...
cat speak .. miaomiao
cat speak .. miaomiao
~Cat()...
~Animal() ...