类-委托构造函数

  • 类的基础定义
    -类的基本思想是数据抽象和封装,数据抽象依赖于接口和实现分离的编程技术。类的接口包括用户所能执行的操作;类的实现则包括的数据成员、负责接口实现体以及定义类所需的各种私有函数;

主函数

    int main()
    {
        Sales_date first("asas-sdgs-gds-gdf-g", 80, 124, 46);
        Sales_date second;
        Sales_date third("981293-235-4-5-32");
        Sales_date(cin);
        system("pause");
        return 0;
    }

主体


#include <iostream>
#include<string>
using namespace  std;
class Sales_date
{
    friend std::istream &read(std::istream& is, Sales_date&item);
    friend std::ostream&write(std::ostream&os, const Sales_date&item);

public:
    Sales_date(const string &book, unsigned num, double sellp, double salep)
        :bookNo(book), unit_sold(num), sellingprice(sellp), saleprice(salep)
    {
        if (sellingprice)
            discount = saleprice / sellingprice;
        cout << "该构造函数接受书号,销售量。原价。实际书架四个信息" << endl;
    }
    Sales_date() :Sales_date("", 0.0, 0.0, 0.0)
    {
        cout << "该构造函数不接受任何信息" << endl;
    }
    Sales_date(const string &book) :Sales_date(book, 0, 0, 0)
    {
        cout << "该构造函数接收署名信息" << endl;
    }
    Sales_date(std::istream &is) :Sales_date()
    {
        read(is, *this);
        cout << "该构造函数接收用户输入的信息" << endl;
    }
    std::istream&read(std::istream&is, Sales_date&item)
    {
        is >> item.bookNo >> item.unit_sold >> item.sellingprice >> item.saleprice;
        return is;
    }
    std::ostream&write(std::ostream&os, Sales_date&item)
    {
        os << item.bookNo << item.unit_sold << item.sellingprice << item.saleprice;
        return os;
    }
private:
    std::string bookNo;
    unsigned unit_sold = 0;
    double sellingprice = 0.0;
    double saleprice = 0.0;
    double discount = 0.0;

};

类-委托构造函数_第1张图片
由此可以分析构造函数在委托其他构造其他构造函数时的步骤。

你可能感兴趣的:(构造函数)