尝试使用init()启动程序,但是它告诉我没有合适的默认构造函数

艾哈迈达利宾

我试图使用init()启动程序,但它告诉我MerkelMain app{};main.cpp的这一行“没有合适的默认构造函数” 我需要添加什么才能使其正常工作?我是否缺少构造函数?

main.cpp

#include "OrderEntry.h"
#include "MerkelMain.h"
#include "CSVReader.h"

int main()
{
    MerkelMain app{};
    app.init();
}

默克尔

#include <iostream>
#include <vector>
#include "OrderEntry.h"
#include "MerkelMain.h"
#include "OrderFood.h"

MerkelMain::MerkelMain(OrderFood _orders)
: orders (_orders)
{

}

void MerkelMain::init()
{
    std::string input;

    while (true)
    {
        printMenu();    
        input = getUserOption();
        processUserOption(input);
    }
}

void MerkelMain::printMenu()
{
    std::cout << "Welcome to Restaurant Firebird" << std::endl;
    std::cout << "a . Order a plate of chicken rice" << std::endl;
    std::cout << "b . Order a plat for wanton noodles" << std::endl;
    std::cout << "c . Order a cup of Coffee" << std::endl;
    std::cout << "d . Order a cup of Tea" << std::endl;
    std::cout << "e . Repeat Order" << std::endl;
    std::cout << "f . Exit Menu" << std::endl;
    std::cout << "------------------------------------" << std::endl;
    std::cout << "Type an option from a-f" << std::endl;
}


std::string MerkelMain::getUserOption()
{
    std::string choice;
    std::cin >> choice;
    return choice;
}

int MerkelMain::getQuantity()
{
    int qty;
    std::cin >> qty;
    return qty;
}

void MerkelMain::processUserOption(std::string choice)
{
   std::endl(std::cout);

   if (choice == "a")
    {
        std::cout << "How many plates of chicken rice would you like to order?" << std::endl;
        OrderType order = OrderType::chickenrice;
        int qty = getQuantity();
        std::endl(std::cout);
        std::cout << "Thank you for your order of " << qty << " plates of Chicken Rice." << std::endl;
        std::endl(std::cout);
        OrderEntry food_order = OrderEntry(qty, order);
        orders.orderQueue.push_back(std::move(food_order));
    }
    if (choice == "b")
    {
        std::cout << "How many plates of wanton noodles would you like to order?" << std::endl;
        OrderType order = OrderType::wantonnoodle;
        int qty = getQuantity();
        std::endl(std::cout);
        std::cout << "Thank you for your order of " << qty << " plates of Wanton Noodles." << std::endl;
        std::endl(std::cout);
        OrderEntry food_order = OrderEntry(qty, order);
        orders.orderQueue.push_back(std::move(food_order));
    }
    if (choice == "c")
    {
        std::cout << "How many cups of Coffee would you like to order?" << std::endl;
        OrderType order = OrderType::coffee;
        int qty = getQuantity();
        std::endl(std::cout);
        std::cout << "Thank you for your order of " << qty << " cups of Coffee." << std::endl;
        OrderEntry food_order = OrderEntry(qty, order);
        orders.orderQueue.push_back(std::move(food_order));
    }
    if (choice == "d")
    {
        std::cout << "How many cups of Tea would you like to order?" << std::endl;
        OrderType order = OrderType::tea;
        int qty = getQuantity();
        std::endl(std::cout);
        std::cout << "Thank you for your order of " << qty << " cups of Tea." << std::endl;
        std::endl(std::cout);
        OrderEntry food_order = OrderEntry(qty, order);
        orders.orderQueue.push_back(std::move(food_order));
    }
    if (choice == "e")
    {
        std::cout << "You have ordered: " << std::endl;

        for (unsigned int i = 0; i < orders.orderQueue.size(); ++i)
        {
            std::cout << orders.orderQueue[i].qty << " " << OrderEntry::orderTypeToString(orders.orderQueue[i].orderType) << std::endl;
        }
        std::endl(std::cout);
    }
    if (choice == "f")
    {
        std::cout << "Thank you and see you again soon." << std::endl;
        
    }
}

默克尔

#pragma once
#include <iostream>
#include <vector>
#include "CSVReader.h"
#include "OrderEntry.h"
#include "OrderFood.h"

class MerkelMain
{
    public:
        MerkelMain(OrderFood _orders);
        void init();
    private:
        void printMenu();
        std::string getUserOption();
        int getQuantity();
        void processUserOption(std::string choice);

        OrderFood orders;
        OrderFood orderFood{"Rest_Order.csv"};
};
泰德·林格莫

您正在尝试使用默认构造函数,MerkelMain app{};但您的MerkelMain类没有默认构造函数。

一种可能的方法是添加一个默认构造函数,该默认构造函数委派给当前的转换构造函数,以从看起来像默认csv文件的内容进行读取

.hpp

class MerkelMain
{
    public:
        MerkelMain();                    // added default constructor
        MerkelMain(OrderFood _orders);   // leave your current converting ctor as-is
        void init();
    private:
        void printMenu();
        std::string getUserOption();
        int getQuantity();
        void processUserOption(std::string choice);

        OrderFood orders;
        OrderFood orderFood{"Rest_Order.csv"}; // this should probably be removed
};

.cpp

// add this without changing the current converting constructor:
MerkelMain::MerkelMain() :
    MerkelMain(OrderFood{"Rest_Order.csv"}) // delegate to the converting constructor
{}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

没有合适的默认构造函数

来自分类Dev

没有合适的默认构造函数可用

来自分类Dev

我正在尝试使用此代码查找二叉树的高度,但是它始终返回0,有人可以告诉我为什么吗?

来自分类Dev

Linux告诉我正在使用一个串行端口,但是没有使用

来自分类Dev

HashMap 包含某个键,但告诉我它没有

来自分类Dev

你能告诉我在创建 a2 对象后为什么构造函数没有改变值吗

来自分类Dev

在struct上没有合适的默认构造函数

来自分类Dev

图层树,没有合适的默认构造函数

来自分类Dev

C ++模板类“没有合适的默认构造函数”

来自分类Dev

SQL查询不断告诉我我缺少右括号,但是我没有

来自分类Dev

当我尝试在D3.js中使用filter函数时,它告诉我“ data.filter不是函数”。为什么?

来自分类Dev

我如何让这个 RPG 工作,它告诉我 Y 和 N 没有定义

来自分类Dev

有没有软件可以告诉我我拥有哪种硬件,以便为它找到驱动程序?

来自分类Dev

Java 作业问题:我正在尝试运行我的程序,它没有显示任何错误但是当我尝试运行它时它不起作用?

来自分类Dev

我尝试使用ets函数,但是R找不到它

来自分类Dev

“没有合适的构造函数可用”

来自分类Dev

Android x86中的GoToMeeting告诉我没有互联网-但是有互联网

来自分类Dev

没有合适的默认构造函数可用于初始化ostream指针

来自分类Dev

Qt4 / C ++ / CMake-没有合适的默认构造函数

来自分类常见问题

当我尝试推向起点时,为什么Git会告诉我“没有这样的远程'起点'”?

来自分类Dev

错误C2512:没有合适的默认构造函数-为什么在构造函数中初始化属性?

来自分类Dev

ProjectEuler#3:为什么它告诉我该划分即使在没有中断的情况下也会中断?

来自分类Dev

有人可以告诉我出了什么问题吗,当我尝试解密我加密的密文时,它告诉我我的填充不正确

来自分类Dev

basecamp api告诉我没有basecamp帐户

来自分类Dev

basecamp api告诉我没有basecamp帐户

来自分类Dev

没有默认的构造函数

来自分类Dev

Rspec不要告诉我它的

来自分类Dev

有没有办法告诉我们如何使node.js程序保持活动状态?

来自分类Dev

我正在尝试使用 swift 4 解析 json,请告诉我它有什么问题?

Related 相关文章

  1. 1

    没有合适的默认构造函数

  2. 2

    没有合适的默认构造函数可用

  3. 3

    我正在尝试使用此代码查找二叉树的高度,但是它始终返回0,有人可以告诉我为什么吗?

  4. 4

    Linux告诉我正在使用一个串行端口,但是没有使用

  5. 5

    HashMap 包含某个键,但告诉我它没有

  6. 6

    你能告诉我在创建 a2 对象后为什么构造函数没有改变值吗

  7. 7

    在struct上没有合适的默认构造函数

  8. 8

    图层树,没有合适的默认构造函数

  9. 9

    C ++模板类“没有合适的默认构造函数”

  10. 10

    SQL查询不断告诉我我缺少右括号,但是我没有

  11. 11

    当我尝试在D3.js中使用filter函数时,它告诉我“ data.filter不是函数”。为什么?

  12. 12

    我如何让这个 RPG 工作,它告诉我 Y 和 N 没有定义

  13. 13

    有没有软件可以告诉我我拥有哪种硬件,以便为它找到驱动程序?

  14. 14

    Java 作业问题:我正在尝试运行我的程序,它没有显示任何错误但是当我尝试运行它时它不起作用?

  15. 15

    我尝试使用ets函数,但是R找不到它

  16. 16

    “没有合适的构造函数可用”

  17. 17

    Android x86中的GoToMeeting告诉我没有互联网-但是有互联网

  18. 18

    没有合适的默认构造函数可用于初始化ostream指针

  19. 19

    Qt4 / C ++ / CMake-没有合适的默认构造函数

  20. 20

    当我尝试推向起点时,为什么Git会告诉我“没有这样的远程'起点'”?

  21. 21

    错误C2512:没有合适的默认构造函数-为什么在构造函数中初始化属性?

  22. 22

    ProjectEuler#3:为什么它告诉我该划分即使在没有中断的情况下也会中断?

  23. 23

    有人可以告诉我出了什么问题吗,当我尝试解密我加密的密文时,它告诉我我的填充不正确

  24. 24

    basecamp api告诉我没有basecamp帐户

  25. 25

    basecamp api告诉我没有basecamp帐户

  26. 26

    没有默认的构造函数

  27. 27

    Rspec不要告诉我它的

  28. 28

    有没有办法告诉我们如何使node.js程序保持活动状态?

  29. 29

    我正在尝试使用 swift 4 解析 json,请告诉我它有什么问题?

热门标签

归档