类组合构造函数d必须显式初始化引用成员

Jovi Zhihao Zhou

我真的被这个问题困住了。所以基本上我有一个Stock班级和一个班级BuyOrderBuyOrder班级将Stock班级作为成员,以便知道要购买的股票。创建股票后,它将使用公司名称并使用随机价格进行初始化。然后,我可以创造一个买入定单发生在bidPricebidQuantityStock的参数。

mainI中,我想创建一个BuyOrder存储订单的数组然后,每次用户创建订单时,都可以存储该订单。

我的第一种方法是声明BuyOrder buyList[100]这样,每次用户创建订单时,我都可以使用set函数设置每个订单,buyList[i]然后递增i。但是,当我BuyOrder buyList[100]在中声明main它说No matching constructor for initialization of 'BuyStock buyList[100]'我回去BuyOrder.cpp尝试添加默认的构造函数,BuyOrder::BuyOrder(){}然后显示错误:Constructor for 'BuyOder'must explicitly initialize the reference member 'buyStock'

我不知道如何从这里继续。非常感谢。

下面是BuyOrder.cpp的一部分,因为它太长了,其余部分仅是函数定义。

BuyOrder::BuyOrder{double price, int quantity, Stock &s)
:buyPrice{price},
 buyQuantity{quantity},
 buyStock{s}{}

void BuyOrder::setBuyStock(Stock stock){
    buyStock = stock;
}

void BuyOrder::setBuyOrderPrice(double price) {
    buyPrice = price;
}

void BuyOrder::setBuyOrderQuantity(int quantity) {
    buyQuantity = quantity;

以下是BuyOrder.h

#ifndef BUYORDER_H
#define BUYORDER_H
#include <ctime>
#include<iostream>
#include "Stock.h"


class BuyOrder {
    friend void getCurrentTime();

public:
    BuyOrder(double , int , Stock & );

    void setBuyStock(Stock);
    void setBuyOrderPrice(double price);
    void setBuyOrderQuantity(int quantity);

    double getBuyOrderPrice();
    int getBuyOrderQuantity();

    void placeBuyOrder();
    void checkExcute();

    void modifyBuyOrder();
    void cancelBuyOrder();

    double getHighestBidPrice();
    int getHighestBidPriceQuantity();

    double getLowestBidPrice();
    int getLowestBidPriceQuantity();

private:
    double buyPrice;
    int buyQuantity;
    bool excute = false;
    Stock &buyStock;
    time_t t;

};
#endif

这是Stock.h

#ifndef STOCK_H
#define STOCK_H
#include <vector>
#include <string>
using namespace std;

class Stock {

    friend void getCurrentTime();


public:
    Stock();
    Stock(string nameOfCompany);

    int getBidTerms();
    int getAskTerms();
    void printStockInfo();
    void initialize();
    void sortBid();
    void sortAsk();

    string nameOfCompany;
    string currentTime;

    vector<double> askPrice;
    vector<int> askQuantity;

    vector<double> bidPrice;
    vector<int> bidQuantity;

    int bidTerm;
    int askTerm;

};
#endif

这是Stock.cpp,不包括长函数定义

#include "Stock.h"
#include <iostream>
#include <vector>
#include <time.h>
#include <iomanip>
#include <ctime>
#include <random>
#pragma warning(disable : 4996)
using namespace std;


void getCurrentTime() {

    time_t rawTime;
    struct tm * timeinfo;

    time(&rawTime);
    timeinfo = localtime(&rawTime);
    cout << asctime(timeinfo);
}

Stock::Stock(){}

Stock::Stock(string companyName) :nameOfCompany{ companyName } {
    initialize();
    sortBid();
    sortAsk();
}    
1201程序警报

因为您的BuyOrder类(不向我们展示,并且应该向我们展示)包含一个引用成员(Stock &buyStock;),所以您必须将该引用设置为该类的任何构造函数中的某个对象。这意味着您通常不能使用默认构造函数,因为它不会初始化引用。

可能的解决方案包括更改buyStock为不作为引用,将其更改为指针(对于尚不表示订单的情况,可以将其清空),或将容器从固定大小的数组更改为可以调整大小的对象像一个vector

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误:构造函数必须显式初始化引用成员

来自分类Dev

编译器错误,因为构造函数必须显式初始化成员

来自分类Dev

类的构造方法必须显式初始化基类

来自分类Dev

C++ 类:必须显式初始化成员

来自分类Dev

具有成员初始化列表的显式副本构造函数中的空值

来自分类Dev

显式初始化没有默认构造函数的成员

来自分类Dev

为什么显式声明的构造函数阻止使用C ++ 11初始化列表进行成员初始化?

来自分类Dev

向量构造函数对:初始化列表与显式构造

来自分类Dev

为什么可以在构造函数中使用成员初始化来满足显式构造函数的参数呢?

来自分类Dev

C ++ 11:带“ = {}”的类内初始化不适用于显式构造函数

来自分类Dev

C++在初始化类实例时隐式调用类成员的构造函数

来自分类Dev

显式构造函数和嵌套的初始化列表

来自分类Dev

多项式类的构造函数,尽管度数未知,但必须初始化系数

来自分类Dev

如何在定义附近使用显式的长度/值构造函数初始化向量成员变量?

来自分类Dev

构造函数未初始化嵌套类的成员

来自分类Dev

在构造函数中初始化类成员变量

来自分类Dev

如何在 g++-10 中结合基类显式构造函数和指定初始化?

来自分类Dev

综合默认构造函数如何初始化已初始化的类成员?

来自分类Dev

如何在默认构造函数中初始化对空字符串的类成员引用

来自分类Dev

在类声明或构造函数初始化器列表中初始化简单成员

来自分类Dev

如何在不显式调用显式构造函数的情况下初始化映射?

来自分类Dev

构造函数的成员初始化器列表不能包含超类的成员?

来自分类Dev

为什么在调用构造函数之前进行显式初始化

来自分类Dev

显式构造函数和std :: initializer_list初始化

来自分类Dev

我是否需要在构造函数中显式初始化std :: unique_ptr?

来自分类Dev

是否可以编写有助于复制初始化的显式构造函数?

来自分类Dev

如何为显式重载的构造函数启用副本初始化?

来自分类Dev

如何在派生类构造函数中初始化基类成员变量?

来自分类Dev

删除类的复制构造函数时,初始化类的数组成员

Related 相关文章

  1. 1

    错误:构造函数必须显式初始化引用成员

  2. 2

    编译器错误,因为构造函数必须显式初始化成员

  3. 3

    类的构造方法必须显式初始化基类

  4. 4

    C++ 类:必须显式初始化成员

  5. 5

    具有成员初始化列表的显式副本构造函数中的空值

  6. 6

    显式初始化没有默认构造函数的成员

  7. 7

    为什么显式声明的构造函数阻止使用C ++ 11初始化列表进行成员初始化?

  8. 8

    向量构造函数对:初始化列表与显式构造

  9. 9

    为什么可以在构造函数中使用成员初始化来满足显式构造函数的参数呢?

  10. 10

    C ++ 11:带“ = {}”的类内初始化不适用于显式构造函数

  11. 11

    C++在初始化类实例时隐式调用类成员的构造函数

  12. 12

    显式构造函数和嵌套的初始化列表

  13. 13

    多项式类的构造函数,尽管度数未知,但必须初始化系数

  14. 14

    如何在定义附近使用显式的长度/值构造函数初始化向量成员变量?

  15. 15

    构造函数未初始化嵌套类的成员

  16. 16

    在构造函数中初始化类成员变量

  17. 17

    如何在 g++-10 中结合基类显式构造函数和指定初始化?

  18. 18

    综合默认构造函数如何初始化已初始化的类成员?

  19. 19

    如何在默认构造函数中初始化对空字符串的类成员引用

  20. 20

    在类声明或构造函数初始化器列表中初始化简单成员

  21. 21

    如何在不显式调用显式构造函数的情况下初始化映射?

  22. 22

    构造函数的成员初始化器列表不能包含超类的成员?

  23. 23

    为什么在调用构造函数之前进行显式初始化

  24. 24

    显式构造函数和std :: initializer_list初始化

  25. 25

    我是否需要在构造函数中显式初始化std :: unique_ptr?

  26. 26

    是否可以编写有助于复制初始化的显式构造函数?

  27. 27

    如何为显式重载的构造函数启用副本初始化?

  28. 28

    如何在派生类构造函数中初始化基类成员变量?

  29. 29

    删除类的复制构造函数时,初始化类的数组成员

热门标签

归档