c++ - 将对象推送到 vector 时无输出

标签 c++ pointers vector

我的模型非常简单,但我在使用 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/

相关文章:

objective-c - 将 id 发送者与实例指针进行比较

c++ - 无法将指针位置设置为 C++ 中另一个指针位置的位置

c++ - double vector push_back 数组

C++ 为什么在 vector 段错误中放置对象?

r - 将数据帧列表与字符列表配对

c++ - 一般构造函数值

c++ - C++中的两层代码调试

c++ - 如何在 C++ 的新线程中访问类中的数据?

c - 二维数组不会衰减到指向指针的指针

C++ new 运算符分配新内存