【发布时间】:2017-05-06 02:11:52
【问题描述】:
我有一个类,它的对象必须添加到链表中。对象仅在非成员函数中创建。我不得不承认,链接列表对我来说毫无意义,是的,我已经阅读了这个论坛上的其他问题,但仍然无法弄清楚。
我将如何进行 1. 创建这个链表 2. 每次创建一个对象时都向这个列表添加一个对象 3. 能够删除列表中的每个节点?
这是我的课:
class ShirtOrder
{
friend ostream& operator<<(ostream &os, const ShirtOrder &rhsObj);
private:
// the data members below are required (you may change identifiers)
// there is no need for additional data members
int orderYear, orderMonth, orderDay;
char printMethod; // 's', 'i', or 'e'
string message;
int mediums; // number of medium shirts ordered
int larges; // number of large shirts ordered
int xls; // number of XL shirts ordered
string shirtColor;
string inkColor;
string orderID;
string region;
string nameAndEmail;
ShirtOrder* next; // new for P5
public:
ShirtOrder(); // default constructor
ShirtOrder(int orderYear, int orderMonth, int orderDay,
char printMethod, string message, int mediums, int larges, int xls,
string shirtColor, string inkColor, string orderID,
string region, string nameAndEmail,
ShirtOrder *soPtr = NULL);
ShirtOrder(const ShirtOrder &otherObj);
~ShirtOrder(); // destructor // New for P5 (may not be in-line)
ShirtOrder* getNext() const {return next;} // New for P5 (may be in-line)
void setNext(ShirtOrder* soPtr) {next = soPtr;} // New for P5 (may be in-line)
double getBlankCost() const;
double getPrintingCost() const;
double getTotalCost() const;
int getLetterCount() const;
char getPrintMethod() const {return printMethod;}
int getOrderYear() const {return orderYear;}
int getOrderMonth() const {return orderMonth;}
int getOrderDay() const {return orderDay;}
int getMediums() const {return mediums;}
int getLarges() const {return larges;}
int getXls() const{return xls;}
string getShirtColor() const {return shirtColor;}
string getInkColor() const {return inkColor;}
string getOrderID() const {return orderID;}
string getRegion() const {return region;}
string getNameAndEmail() const {return nameAndEmail;}
string getMessage() const {return message;}
void setOrderYear (int orderYear) {this->orderYear = orderYear;}
void setOrderMonth (int orderMonth) {this->orderMonth = orderMonth;}
void setOrderDay (int orderDay) {this->orderDay = orderDay;}
void setPrintMethod (char printMethod) {this->printMethod = printMethod;}
void setMessage (string message) {this->message = message; }
void setMediums (int mediums) {this->mediums = mediums;}
void setLarges (int larges) {this->larges = larges;}
void setXls (int xls) {this->xls = xls;}
void setShirtColor (string shirtColor) {this->shirtColor = shirtColor;}
void setInkColor (string inkColor) {this->inkColor = inkColor;}
void setOrderID (string orderID) {this->orderID = orderID;}
void setRegion (string region) {this->region = region;}
void setNameAndEmail (string nameAndEmail) {this->nameAndEmail = nameAndEmail;}
};
所以说这个类的一个对象是在一个非成员函数中创建的。如何创建此类对象的列表,并将每个对象添加到列表的末尾?谢谢!
【问题讨论】:
-
如何创建此类对象的列表 --
std::list<ShirtOrder>-- 将每个对象添加到列表的末尾 -- @ 987654323@ -
我需要它是一个链表,特别是。虽然我感谢你的回答!
-
std::list是一个链表。如果这应该是某种自制的链表,为什么要通过创建ShirtOrder类来混淆?首先创建一个通用链表类,对其进行测试,然后在您的ShirtOrder类中使用它。 -
非会员builder函数的签名是要给我们看,还是我们自己补?
-
为了清除我的评论,我需要列表中的每个节点都可以被前一个节点的“下一个”指针访问...
标签: c++ class object linked-list