【问题标题】:Using pointers with functions, classes, and stacks [closed]将指针与函数、类和堆栈一起使用 [关闭]
【发布时间】:2014-03-14 13:03:56
【问题描述】:
#include "InventoryBin.h"
#include "Stack.h"
#include <string>
#include <iostream>
using namespace std;

// Constants for the menu choices
const int ENTER_ITEM = 1,
  REMOVE_ITEM = 2,
  QUIT = 3;

int choice;      // To hold menu choice

// Function prototypes
void popItem(Stack<InventoryBin> *);
void pushItem(Stack<InventoryBin> *);
int menu();

void main()
{
  // Create a stack object
  Stack<InventoryBin> stack;

  // Use a loop to ask user for input
  do
  {
    menu();
    if (choice != QUIT)
    {
      switch (choice)
      {
        case ENTER_ITEM:
          pushItem(&stack);
          break;
        case REMOVE_ITEM:
          popItem(&stack);
      }
    }
  } while (choice != QUIT);
}
int menu()
{
  // Display menu
  cout << "Please Select\n"
     << ENTER_ITEM << " - Enter an item.\n"
     << REMOVE_ITEM << " - Remove an item.\n"
     << QUIT << " - Quit.\n";
  cin >> choice;

  // Validate
  while (choice < ENTER_ITEM || choice > QUIT)
  {
    cout << "Enter a valid choice: ";
    cin >> choice;
  }
  return choice;
}
void pushItem(Stack<InventoryBin> *stack)
{
  cout << "Enter serial number: ";
  cin >> stack;
  stack->push(stack);
  cin.ignore();
  cout << "Enter manufacture date: ";
  getline(cin, stack);
  stack->push(stack);
  cout << "Enter lot number: ";
  cin >> stack;
  stack->push(stack);
}

我正在尝试使 pushItem 和 popItem 工作。该程序创建了一个数据类型为 InventoryBin 的堆栈...不发布 InventoryBin 你知道我做错了什么吗?我的 pushItem 函数有错误代码。

没有合适的构造函数可以将 StackInventoryBin * 转换为 InventoryBin

【问题讨论】:

  • 有些人对这种轻率的回应感到厌烦,但是:发布您的代码,我们会提供帮助。此外,另一方面,如果您显然已经努力自己定位问题,而不是必须进行完整的代码审查,人们将更有可能提供帮助。

标签: c++ function templates pointers stack


【解决方案1】:

stack-&gt;push(stack); 是错误的。查找stack::push。您应该将一个项目推入堆栈,而不是整个堆栈。错误代码说明了一切:push() 需要一个 InventoryBin,但您传递的是整个堆栈。

此外,我不知道如果你将整个堆栈压入自身会发生什么......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 2017-01-01
    相关资源
    最近更新 更多