• 类声明

    //stock00.h
    #ifndef UNTITLED_STOCK00_H
    #define UNTITLED_STOCK00_H #include <string> class Stock { private: std::string company; public:
    void set();
    void show(); }; #endif //UNTITLED_STOCK00_H

    类方法定义

    //stock00.cpp
    #include <iostream>
    #include "stock00.h"
    
    void Stock::show()
    {
        std::cout<<company<<std::endl;
    }
    
    void Stock::set()
    {
        company = "xmm";
    }

     

     const成员函数

    void show() const; //const成员函数不能修改调用对象
    
    //const修饰的类只能调用const成员函数
    const Stock S1("xumaomao");

    比较两个类中的成员 

    //声明
    const Stock & compare(const Stock & S) const;
    
    //定义
    const Stock & Stock::compare(const Stock &S) const
    {
        if(S.company_ > company_)
            return S;
        else
            return *this;
    }

    对象数组

        Stock S_array[4]; //默认初始化
    
        Stock S1_array[4] = {
                Stock("a"),
                Stock("b"),
                Stock("c"),
                Stock()
        };

    在类中定义常量

    1. 用枚举的方式,用下面的方式声明枚举时并不会创建类数据成员,也就是说所有的对象中都不包好该枚举数据,Months只是一个符号名称,在作用域为整个类的代码中遇到它时,编译器将用12来替换它。
      class Bakery
      {
      private:
          enum {Months = 12};
          double costs[Months];
      };
    2. 用static const来定义静态常量,该静态常量将与静态变量存储在一起,而不是存储在对象中。因此只有一个Months常量,被所有的Bakery对象共享。
      class Bakery
      {
      private:
          static const int Months = 12;
          double costs[Months];
      };

       

    类的类型转换

    1. 利用构造函数C++基本数据类型转化为类类型
      Stonewt(double lbs); //类构造函数
      
      Stonewt myCat;
      myCat = 19.6; //利用构造函数来进行隐式转换
      
      explicit Stonewt(double lbs); //利用关键字explicit声明构造函数可以关闭上面的隐私类型转换功能,只能使用下面的显示类型转换
      
      myCat = Stonewt(19.6);
    2. 定义转换函数把类转化为基本类型
      Stonewt::operator double() const
      {
             return pounds; //pounds是类中一个double类型的数据成员  
      }
      /*
      注意:转换函数不能指定的返回类型也不能有参数
      */
      Stonewt wells(20, 3);
      double star = wells;
       

    特殊成员函数

    C++自动提供了以下成员函数:

    1. 默认构造函数
    2. 默认析构函数
    3. 复制构造函数
    4. 赋值运算符
    5. 地址运算符
    6. 移动构造函数(C++11)
    7. 移动赋值运算符(C++11)

     

  • 相关阅读:
    JavaScript常用设计模式
    js 判断l对象类型
    JavaScript编程(终极篇)
    微信小程序开发-滑动操作
    解决Jquery向页面append新元素之后事件的绑定问题
    C# list与数组互相转换
    C# “贝格尔”编排法
    C#数字格式化
    SQL从一个表查询数据插入/更新到另一个表
    全局唯一标识符 (GUID)
  • 原文地址:https://www.cnblogs.com/xumaomao/p/11068307.html
Copyright © 2020-2023  润新知