C++ 题目定义一个叫书的类,再定义一个叫书架的子类,书架最多放10本书,放多会溢出,求大神看看。

要求书架开始时候是空的,然后能放书到书架上,到第11本书放上之后通知使用者“满了”。代码如下,可编译,但是运行无结果,求大神指正:#include<iostream>#i... 要求书架开始时候是空的,然后能放书到书架上,到第11本书放上之后通知使用者“满了”。

代码如下,可编译,但是运行无结果,求大神指正:
#include <iostream>
#include <vector>

// String set-up
#include <string>
#include <sstream>

// Need stdlib for random numbers.
#include <stdlib.h>
using namespace std;

class book //define book
{
public:
book();
book(string, int);
void setName(string bookName);
string getName();
void setbookNum(int bNum);
int getbookNum();

private:
string bookName;
int bNum;
};

book::book() :bookName("Not set"), bNum(0) {}
book::book(string aName, int aBNum) : bookName(aName), bNum(aBNum) {}

void book::setName(string bookName)
{
cout << "setting!";
}

void book::setbookNum(int bNum)
{
cout << 6 << bNum;
}

string book::getName()
{
return bookName;
}
int book::getbookNum()
{
return bNum;
}
// 以上都是定义书的类

class shelf : public book //这里开始定义叫书架的子类
{
public:
shelf();
void insert(int);
int bookshelf[9];

};

shelf::shelf()
{
int i = 0; // 初始化为零This initializes all elements to zero
cout << "constructing our shelves" << endl;

}

void shelf::insert(int bNum) //加入书籍,inserts a book to the end of the list
{
for (int i = 0; i < 10; i++)
{
bookshelf[i] = bNum;
if (i >= 10); // when add more than 10 books
break;
cout << "overflow" << endl;
}
}

int main() //感觉主函数写的也不对,但是不知道怎么修改。
{
shelf book; //creates a shelf object named "book"
int bNum = 1133;
book.insert(bNum);
return 0;

}
展开
 我来答
区妙松5Q
推荐于2016-03-08 · TA获得超过227个赞
知道小有建树答主
回答量:248
采纳率:0%
帮助的人:203万
展开全部

最明显的问题就是书架显然不应该是书的子类啊

正确的做法是书架类有一个数组用来保存书 比如

class Shelf {
priavte:
    Book books[10];
    int bookNum;
public:
    Shelf():bookNum(0){}
    void insert(const Book& book);
};
更多追问追答
追问
初学,大神看看这样改对吗:

struct book
{
string bookName;
int bookNum;
};
class shelf
{
private:
book books[10];
int num_books;
public:
shelf() :num_books(0){}
void insert(const book& book);
};
追答
嗯 之后你可以试着把之前的部分补上 有什么问题再追问就好了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式