Skip to content

面向对象编程基础(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() ...