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;
} 展开
代码如下,可编译,但是运行无结果,求大神指正:
#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;
} 展开
1个回答
展开全部
最明显的问题就是书架显然不应该是书的子类啊
正确的做法是书架类有一个数组用来保存书 比如
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);
};
追答
嗯 之后你可以试着把之前的部分补上 有什么问题再追问就好了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询