• C++之数据类型,类


    注意点:

      同一个成员函数只能被申明或定义一次!!!

      定义完类时,内存并未为其分配存储空间,实例对象时才有分配。

      class声明的类,如果不做private 或public声明,系统默认为private

      struct声明的类,。。。。。。。public

      union声明的类,。。。。。。。public

      类中定义方法可以直接 void func(){} ,

      如果在class{}外部定义该类的方法就可以用void className::func(){} , 前提是该方法必须先在class{}中声明。!!!

    1.定义:

    class Goods{
    
      public:
    
        char Nmae[10];      //定义成员变量
      private:
        int Amount;
        float Price;
        float Total_value;
      public:
        void getName(char*);    //申明成员函数,可以不写方法体,
    
        Goods(){           //构造函数,不能指定类型!!!void都不能写
          cout<<"hehe";
        }
    
        void Goods::registerGoods(char* name , int amount , float price){ //定义成员函数(或者直接void registerGoods(char *param.....)定义
          strcpy(Name,name);
          Amount    = amount;
          Price    = price;
        }
    
        void Goods::countTotal(void){
          Total_value    = Price*Amount;
        }
    
        float Goods::getTotal_value(void){
          return Total_value;
        }
    
        float Goods::getPrice(void){
          return Price;
        }
    
        ~Goods(){           //析构函数,不能指定类型!!!void都不能写
          cout<<"系统有默认的构造和析构函数";
        }
    };

    2,实例对象

      

    Goods Cars;

    3.对象调用成员函数

    int main ()
    {
        Goods Car;
        char name[10];
        int amount;
        float price;
        float total=1;
        cout<<"输入车辆名称";
        cin.getline(name,10);
        cout<<"输入数量和价格";
        cin>>amount>>price;
        cout<<"total is"<<total<<"
    ";
    
        Car.registerGoods(name,amount,price);  //调用成员函数
        Car.countTotal();              //调用成员函数
        total = Car.getTotal_value();        //调用成员函数
    
        cout<<"车辆名称是"<<Car.Name<<"
    ";    //调用成员变量        (只能访问public 的)
        cout<<"车辆单价是"<<Car.getPrice()<<"
    ";
    
    }

    4.类的继承

     父类(基类):

    class animal{
    private :
        char *Name;
        int Foot;
        int Eye;
        int Hear;
    public :
        animal(char *name , int foot , int eye , int hear){    
            Name = name;
            Foot = foot;
            Eye     = eye;
            Hear = hear;
        };
        ~animal(){};
        int getFoot(){
            return Foot;
        }
    };

    子类(派生类):

    class cat:public animal{  //cat继承animal类
    public:
        cat::cat(char *name , int foot , int eye , int hear):animal(name , foot , eye , hear){  //调用父类的构造函数
            cout<<"im "<<name;
        }
    };
  • 相关阅读:
    定时任务的分布式调度
    springmvc 静态资源 配置
    activemq 持久化
    函数式编程与面向对象编程的比较
    LeetCode 108——将有序数组转化为二叉搜索树
    LeetCode 104——二叉树中的最大深度
    LeetCode 700——二叉搜索树中的搜索
    线性代数之——四个基本子空间
    线性代数之——线性相关性、基和维数
    线性代数之——秩和解的结构
  • 原文地址:https://www.cnblogs.com/alazalazalaz/p/4074232.html
Copyright © 2020-2023  润新知