【发布时间】:2011-06-22 00:04:55
【问题描述】:
有一个家庭作业,我认为很简单并且可以不使用类/对象来完成,但我想我只是对类/对象的理解不够好,无法按照老师要求的方式完成它。
所有这些都将通过一个长度始终为 20 的整数数组来完成。
分配调用 3 个单独的文件:
1 个头文件,book.h,包含类元素/成员函数/原型) 1 个 .cpp 文件,包含所有成员函数。为此,我将简单地包含一个示例(1 个 .cpp 文件,该文件仅包含 int main 并充当用户所看到的接口并调用成员函数等。
//book.h
class Shelf{
public:
Shelf();
void insert(int);
int bookshelf[];
};
现在 book.cpp 包含成员函数(我真的不知道我是否需要这样的构造函数,我是否将数组命名为与 book.h 中的数组相同的名称?)
//book.cpp
#include <iostream>
#include "book.h"
const int shelfSize=20;
Shelf::Shelf(){
bookshelf[shelfSize];
for(int i=0; i <shelfSize; i++)
bookshelf[i]=0;
}
//inserts a book to the end of the list
void Shelf::insert(int booknum){
for(int i=0; i < shelfSize; i++)
bookshelf[i] = booknum;
}
现在book_main.cpp,它应该只是给出一个菜单并提示用户:
//book_main.cpp
#include<iostream>
using namespace std;
#include "book.h"
int main(){
Shelf book; //creates a Shelf object named "book"
int isbn=0;
cout<<"Enter ISBN: "<<endl;
cin>>isbn;
book.insert(isbn);
return 0;
}
现在我意识到这个逻辑没有多大意义,除此之外我的程序还有很多。我正在淡化它,只是为了显示我遇到的问题。
1) 我应该如何在我的对象和成员函数等中设置数组?我想我的函数设计很糟糕,以及包含所有成员函数等的文件中的数组名称不正确。任何建议都将不胜感激。该程序编译但每次我调用 book.insert() 时都会崩溃
【问题讨论】:
-
正如 Oli 所指出的,您无法访问空数组的成员。 :)
-
你最好把
bookshelf隐藏起来(转为私密:)。 -
谢谢,@mattn,我正计划处理那个一次我得到了其他一切工作哈。