c++ - 在另一个类中使用一个类的对象?

标签 c++ oop

我创建了一个名为 Book 的类,它可以有很多本书。但是我想创建一个类架子,它只能包含 10 本书,如果它大于 10 十,它应该打印错误消息!但是我想不出一种制作类架子的方法。到目前为止,我已经这样做了:

#include <iostream>
#include <string>
using namespace std;

class Book{
private:
    string bookName;
    int pNum;

public:
    Book();
    Book(string tempName, int tNum){
        setName(tempName);
        setPageNum(tNum);
    }

    void setName(string bName){
    bookName = bName;
    }



    void setPageNum(int tempNum){
        pNum = tempNum;
    }

    string getName(){
     return bookName;

         }
    int getPageNum(){
        return pNum;

         }
};

class Shelf{
    public:
    Book nBook[10];
    void addbook();
void Book::addbook(Book nBook[10])
{
    for(int i = 0; i<10; i++)
        nBook[i] = nBook[i].setName(string bName)

}


};
int main(){

    Book math = Book("math", 500);
    Book abcd = Book("abcd", 501);


    cout << English.getName() <<" "<<English.getPageNum()<<endl;
    cout << German.getName() <<" "<<German.getPageNum()<<endl;


}

最佳答案

您可以使用标准 vector 类来存储书架中的 Book 对象。 在下面的示例中,书对象将在添加到书架时被复制

#include <vector>
using namespace std;
class Shelf{
public:
  vector<Book> books;

  bool addbook(Book book)
  {
    if(books.size() > 10) 
      {
        return false;
      }
    else 
      {
        books.push_back(book);
        return true;
      }
  }
};

关于c++ - 在另一个类中使用一个类的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29585562/

相关文章:

c++ - 英特尔 C++ 编译器本身的通用结构

c++ * 和 & 同时

PHP:OOP 中的变量作用域?

java - 使给定字符串成为回文

Javascript:从动态创建的实例调用嵌套函数

c++ - 有没有更好的方法来初始化引用成员以引用同一个类中的另一个成员

c++ - new Object() 和 Object() 有什么区别

c++ - 我可以完全停止使用 "inline"吗?

java - 在运行时传递可选的未知参数

c# - 结合 4 个参数设计 8 个重载方法的最佳方法