I have a class which has a private list. I've declared it in my .hh file like this:
   class Course{
   private:
      int id;
      list<string> sessions;
   public:
   Course(int c);
   ~Course();
   void read_course();
and then again in my constructor on the .cc file (i don't know if i have to do this again). I want to have it so that the constructor initialises it as an empty list:
#include "Course.hh"
#include <list>
#include <iostream>
using namespace std;
Course::Course(int c){
    id = c;
    list<string> sessions;
}
Course::~Course(){}
void Course::read_course(){
  int s;
  string nom;
  cin >> s;
  for(int i = 0; i < s; ++i){
      cin >> nom;
      sessions.push_back(nom);
  }
}
The read_course() method, when called, has to store s strings to the list, and i do this with a for loop and .push_back():
My problem is that when i execute it it gives me a segmentation fault (core dumped) error. I have tried initialising the list as
sessions = new list<string>;
and other stuff that I've found online, but the examples were mostly for vectors and I couldn't figure out why this happens or how to solve it. Any help will be appreciated!
Aucun commentaire:
Enregistrer un commentaire