Для задания (и для себя) мне нужно иметь возможность распечатать односвязный список объектов "Stock".
Каждая акция как следующие частные данные членов:
1 int
1 строка
Это моя функция печати в классе связанных списков, которую я должен был использовать / разработать. Мне не разрешено использовать STL :: list ().
//list.h
template<class NODETYPE>
void List< NODETYPE>::print() const
{
if(isEmpty() ){
cout<<"the list is empty\n\n";
return;
}
ListNode< NODETYPE> *currentPtr=firstPtr;
cout<<"The list is: ";
while (currentPtr!=0){
//cout << currentPtr->data << ' ';
currentPtr = currentPtr->nextPtr;
}
cout<< "\n\n";
}
Теперь для узлов в списке listnode.h:
//ListNode.h
//ListNode Template Definition
#ifndef LISTNODE_H
#define LISTNODE_H
template< class NODETYPE > class List;
template < class NODETYPE>
class ListNode {
friend class List < NODETYPE>;
public:
ListNode (const NODETYPE &); //constructor
NODETYPE getData() const;
private:
NODETYPE data;
ListNode< NODETYPE> *nextPtr;
};
template<class NODETYPE>
ListNode< NODETYPE >::ListNode(const NODETYPE &info): data (info), nextPtr(0)
{
}
template<class NODETYPE>
NODETYPE ListNode<NODETYPE>::getData() const{
return data;
}
#endif
Теперь мой класс акций:
class Stock{
public:
Stock(); //default constructor
Stock(string, int); //overloaded constructor
~Stock(); //deconstructor
void setSymbol(string); //sets stock symbol
void setShares(int);
string getSymbol();
int getShares();
private:
string symbol;
int shares;
};
Stock::Stock(){
symbol=" ";
shares=0;
}
Stock::Stock(string s, int num){
cout<<"Creating Stock with supplied Values! \n\n"<<endl;
symbol=s;
shares=num;
price=p;
}
Simple int main () для тестирования:
int main(){
List < Stock > portfolio_list;
Stock Google("GOOG", 500);
Stock VMware("VMW", 90);
Stock Apple("APL", 350);
portfolio_list.insertAtFront(Google);
portfolio_list.insertAtFront(VMware);
portfolio_list.insertAtFront(Apple);
portfolio_list.print();
return 0;
}
Очевидно, я получаю операторские ошибки для «<<» в list.h, потому что он не может вывести содержимое моего класса акций. Моя конечная цель - перебрать каждый элемент в связанном списке и напечатать символ строки и int. Я предполагаю, что мне нужно будет использовать какую-то перегрузку операторов? Или я далеко от базы? Если я это сделаю, должно ли это быть реализовано в моем классе акций? Заранее спасибо. </p>