类声明

//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)

 

posted @ 2019-06-22 11:43  xd_xumaomao  阅读(189)  评论(0编辑  收藏  举报