Whelp, I clearly don't get what I'm supposed to do because I switched my QueueItem.h to read "std::string _data;" instead of "char _data[30];" but I'm still getting the same errors as before. What did I miss from the instructions?
Errors:
Code:
main_Hardesty.cpp: In function ‘int main()’:
main_Hardesty.cpp:30:25: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
(THE ABOVE ERROR OCCURS FOR EVERY TIME I CALL myQueue.addItem IN main)
QueueItem_Hardesty.cpp: In member function ‘const char* QueueItem::getData() const’:
QueueItem_Hardesty.cpp:53:11: error: cannot convert ‘const string {aka const std::basic_string<char>}’ to ‘const char*’ in return
Here's the amended QueueItem.h
Code:
//***LINE 13*** Prevent multiple inclusions of header
#ifndef QueueItem_H
#define QueueItem_H
//this will set/get data members, not manipulate the linked lists
class QueueItem
{
public:
QueueItem(char *pData, int id); //ctor
void setNext(QueueItem *pItem); //set pointer to next Item
QueueItem* getNext() const; //get pointer for next Item
int getId() const; //get Id
const char* getData() const;
private:
std::string _data; //data value character string/array
const int _itemID; //unique ID for item in queue
QueueItem* _pNext; //next item in queue
}; //end class QueueItem
#endif
And my QueueItem.cpp
Code:
#include <iostream> //my standard cout/cin stuff
#include <cstdio> //some C stuff for good measure
#include <iomanip> //the setfill() and setw() stuff
#include <string> //self-explanatory
#include "QueueItem_Hardesty.h" /*include my QueueItem_Hardesty header
file with class QueueItem*/
#include "Queue_Hardesty.h" /*include my Queue_Hardesty.h file with
class Queue*/
using std::cout;
using std::cin;
using std::endl;
using std::setfill;
using std::setw;
using std::string;
using std::copy;
//my QueueItem constructor
QueueItem::QueueItem(char *pData, int id)
: _data (pData), _itemID (id), _pNext (NULL) //private variables now global variables
{
//std::copy(_data, pData + 30, std::begin(pData));
} //end constructor/function
...
const char* QueueItem::getData() const
{
return _data;
} //***LINE 54*** end getData function
If I haven't said it before, I appreciate your help as I crawl through this.
Aaaannd, lest I forget my main.cpp
Code:
#include <iostream>
#include <iomanip>
#include <string>
using std::cout;
using std::endl;
using std::setfill;
using std::setw;
using std::string;
#include "Queue_Hardesty.h"
int main()
{
//construct a queue called myQueue
Queue myQueue;
cout << "Creating a queue. Program is now started." << endl;
myQueue.removeItem(); //call Remove, should do nothing since Queue is empty
myQueue.addItem("red"); //
myQueue.addItem("green");
myQueue.addItem("blue");
myQueue.addItem("orange");
myQueue.print(); //prints contesnts of queue (ID & data)
myQueue.removeItem();
myQueue.removeItem();
myQueue.addItem("black");
myQueue.addItem("brown");
myQueue.addItem("gray");
myQueue.addItem("purple");
myQueue.print();
myQueue.removeItem();
myQueue.removeItem();
myQueue.removeItem();
myQueue.removeItem();
myQueue.print();
myQueue.eraseQueue();
myQueue.addItem("white");
myQueue.addItem("tan");
myQueue.addItem("pink");
myQueue.print();
myQueue.eraseQueue();
myQueue.print();
} //end function main