我的模型非常简单,但我在使用 vector 时遇到了一些问题。
基本上,我有一个具有一个播放列表的 Song 类,一个播放列表可以有多个轨道(在 vector 内)。
Song* song = new Song("Rien de rien", "Biggy", 120);
Playlist* playlist;
Track* synthTrack;
playlist->addTrack(synthTrack); // without this line everything works fine
song->setPlaylist(playlist);
cout << "Title " + song->getTitle() << endl;
控制台没有给我任何错误,但是 cout
没有显示。只要我将轨道添加到我的播放列表,就会发生这种情况。
这是我的播放列表类的样子:
class Playlist {
private:
vector<Track*> tracklist;
public:
void addTrack(Track* track){
this->tracklist.push_back(track);
}
};
最佳答案
您正在通过访问无效指针调用未定义的行为,这意味着任何事情都可能发生:
Playlist* playlist;
Track* synthTrack;
playlist->addTrack(synthTrack); // using uninitialized pointer
应该是
Playlist* playlist = new Playlist; //initialize playlist here
Track* synthTrack = new Track; //also initialize synthTrack
playlist->addTrack(synthTrack);
关于c++ - 将对象推送到 vector 时无输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10076594/