我是新编码并试图弄清楚为什么我的课程似乎不起作用。 我的程序需要创建4本书并从主程序中显示它们。
在过去的一天半里,我一直在摸不着头脑,认为我没有正确引用其中一个对象...我可以让我的代码编译但是它只是吐了数量庞大。
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
class book
{
public:
book(string bn, int pn);
string getName();
int getPageNum();
void setName(string bookName);
void setPageNum(int pNum);
string bn;
int pn;
string bookName;
int pNum;
};
book::book(string bookName, int pNum) //provides framework for final print/input
{
bookName = bn;
pNum = pn;
}
void book::setName(string bookName) //set book's name
{
bookName=bn;
}
void book::setPageNum(int pNum) //set book's page number
{
pNum=pn;
}
void print(book b) //printing function
{
cout<<"Your book is called: "<< b.bookName <<", and you're on page: "<< b.pNum;
}
int main()
{
book b1 = book("The Odyssey", 5);
book b2 = book("To Kill a Mockingbird", 153);
book b3 = book("Pride and Prejudice", 88);
book b4 = book("The Great Gatsby", 17);
print(b1);
print(b2);
print(b3);
print(b4);
return 0;
}
&#13;
答案 0 :(得分:1)
您交换了构造函数和其他成员函数中的赋值。
此外,不需要成员变量bookName
和pNum
。
这是固定代码:
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
class book
{
public:
book(string bn, int pn);
string getName();
int getPageNum();
void setName(string bookName);
void setPageNum(int pNum);
string bn;
int pn;
};
book::book(string bookName, int pNum) //provides framework for final print/input
{
bn = bookName;
pn = pNum;
}
void book::setName(string bookName) //set book's name
{
bn = bookName;
}
void book::setPageNum(int pNum) //set book's page number
{
pn = pNum;
}
void print(book b) //printing function
{
cout<<"Your book is called: "<< b.bn <<", and you're on page: "<< b.pn<<endl;
}
int main()
{
book b1 = book("The Odyssey", 5);
book b2 = book("To Kill a Mockingbird", 153);
book b3 = book("Pride and Prejudice", 88);
book b4 = book("The Great Gatsby", 17);
print(b1);
print(b2);
print(b3);
print(b4);
return 0;
}
希望有所帮助:)
答案 1 :(得分:1)
分配值时会出现问题。一个例子:
void book::setName(string bookName) //set book's name
{
bookName=bn;
}
请注意,您将参数传递为bookName
,并且您的类中有一个名为bn
的成员。您应该将bookName分配给bn,而不是相反。它应该是bn=bookName
。您的许多功能都存在此问题。此外,成员pNum
也是多余的。
修改后的(更正的)代码:http://ideone.com/Ha5Dhn