C++ Adding Elements to Array and Modifying Function to Pointer -


i'm still bit stuck on part on assignment.

here prompt asking:

now can modify loadmovies function create movielist object , add each of movie objects it. function loadmovies should return pointer movielist object. means need create movielist object dynamically , on heap.

change main function , store returned movielist pointer in variable. test if works expected, can use printall function of movielist object.

here code far:

class movielist {  public:     movie* movies;     int last_movie_index;     int movies_size;     int movie_count = 0;  movielist(int size) {     movies_size = size;     movies = new movie[movies_size];     last_movie_index = -1; }  ~movielist() {     delete [] movies; }  int length() {     return movie_count; }  bool isfull() {     return movie_count == movies_size; }  void add(movie const& m) {     if (isfull())     {         cout << "cannot add movie, list full" << endl;         return;     }      ++last_movie_index;     movies[last_movie_index] = m; }  void printall() {     (int = 0; < movie_count; i++) {         movies[last_movie_index].printmovie();     } }  };  void readmoviefile(vector<string> &movies); void loadmovies();  enum moviesortorder {     by_year = 0,     by_name = 1,     by_votes = 2 };  int main() {     loadmovies();      // todo:     // need implement movie , movielist classes ,     // methods below program produce     // output described in assignment.     //     // once have implemented everything, should able     // uncomment code below , run program.      movielist *movies = loadmovies();      //    // test methods movie , movielist classes         //printallmoviesmadeinyear(movies, 1984);         //printallmovieswithstartletter(movies, 'b');         //printalltopnmovies(movies, 5);          //delete movies;     return 0; }  void loadmovies() {     vector<string> movies;     readmoviefile(movies);      string name;     int year;     double rating;     int votes;      (int = 0; < movies.size(); i++)     {         istringstream input_string(movies[i]);         getline(input_string, name, '\t');         input_string >> year >> rating >> votes;         movie movie (name, year, votes, rating);         movie.printmovie();     } } 

now i'm stuck @ professor asks me modify loadmovies in prompt , turn pointer. i'm drawing blanks. reason if try compile says:

c:\users\andy\documents\c++ homework\moviestatisticsprogram\moviestatsprogram.cpp:163: error: void value not ignored ought      movielist *movies = loadmovies();                                     ^ 

you not creating object of type movielist().

the method "loadmovies" read , assembles vector locally.

the function loadmovies() returns nothing, can't assign "nothing" anything.

why don't take advantage of methods have. each movie read in, needs go movielist object. call add() method.

declare movielist object inside loadmovies() , change return type return reference/pointer movielist, like

movielist* loadmovies(); 

if not pass in movielist object reference , fill in.

void loadmovies(movielist& mlist) 

i think need @ basics in book , go there. type of question might downvoted severely.


Comments

Popular posts from this blog

python - mat is not a numerical tuple : openCV error -

c# - MSAA finds controls UI Automation doesn't -

wordpress - .htaccess: RewriteRule: bad flag delimiters -