【发布时间】:2014-08-24 05:48:09
【问题描述】:
我对 C++ 中的类有疑问。我刚刚在书的帮助下写了我的第一堂课,练习如下:
写一本带有姓名、作者和出版商的课本。用硬编码的给定文本创建一个对象。让本书通过使用 ToString() 函数来展示。不要将构造函数留空并使用 this-> 指针。
我的编译器中有 0 个错误,但它什么也没显示并立即结束(我的程序),有人可以解释我做错了什么以及为什么编译器没有看到我的错误吗? 我也尝试过在堆上创建一个对象,但也不起作用。
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
class Book
{
private:
string name;
string author;
string publisher;
public:
Book(string name, string author, string publisher)
{
this->name=name;
this->author=author;
this->publisher=publisher;
}
~Book(void)
{
}
string getName();
string getAuthor();
string getPublisher();
void setName(string name);
void setAuthor(string author);
void setPublisher(string publisher);
string toString();
};
string Book::getName()
{
return name;
}
string Book::getAuthor()
{
return author;
}
string Book::getPublisher()
{
return publisher;
}
void Book::setName(string name)
{
this->name=name;
}
void Book::setAuthor(string author)
{
this->author=author;
}
void Book::setPublisher(string publisher)
{
this->publisher=publisher;
}
string Book::toString()
{
stringstream ss;
ss << "Name of the book: " << name << endl;
ss << "Author of the book: " << author << endl;
ss << "The book has been published by: " << publisher << endl;
return ss.str();
}
int main()
{
Book b1=Book("The lone child","Bryan Addams", "Publishers INC");
b1.toString();
return 0;
}
【问题讨论】:
-
在 tubro c++ 中使用 getCh() 查看结果。在 Dev C++ 中使用 System("pause")
-
将其中任何一个放在 return 0 之前;声明
-
它没有显示任何东西,因为你没有告诉它。您必须以某种方式输出
Book::toString()的返回值(参见 operator -
@Nabin 他可以暂停屏幕20年,如果程序中没有真正产生输出的代码,它仍然不会产生输出。