Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;如何获取对包含对象的引用?_C++_Pointers_Inheritance - Fatal编程技术网

C++ C++;如何获取对包含对象的引用?

C++ C++;如何获取对包含对象的引用?,c++,pointers,inheritance,C++,Pointers,Inheritance,我有三个类-专辑、曲目和扩展曲目的播放曲目 轨迹包含一个时间对象,以及艺术家和标题的两个字符串。 唱片集包含曲目向量和标题字符串。 PlayTrack扩展了曲目,因为它包含指向它所属的唱片集的指针 我的问题是,如何获取指向类playlitrack中包含它的唱片集的指针?曲目属于给定的唱片集,并且这种关系永远不会改变,因此最简单的解决方案是将包含唱片集对象的指针传递给曲目对象(或者playlitrack,如果您喜欢的话)的构造函数,并将其保存在构造函数代码中的指针成员中 请注意,playlitra

我有三个类-专辑、曲目和扩展曲目的播放曲目

轨迹包含一个时间对象,以及艺术家和标题的两个字符串。 唱片集包含曲目向量和标题字符串。 PlayTrack扩展了曲目,因为它包含指向它所属的唱片集的指针


我的问题是,如何获取指向类playlitrack中包含它的唱片集的指针?

曲目属于给定的唱片集,并且这种关系永远不会改变,因此最简单的解决方案是将包含唱片集对象的指针传递给曲目对象(或者playlitrack,如果您喜欢的话)的构造函数,并将其保存在构造函数代码中的指针成员中


请注意,playlitracks可以引用包含它们的相册对象,但不能通过在成员指针上调用
delete
来删除它。

我不太明白您的确切要求,但听起来您想从playlitrack中获取相册

class PlaylistTrack : public Track
{
     public:
         PlaylistTrack(Album * owner){ m_owner = owner; }
         Album* getAlbum(){return m_owner;}
     private:
         Album* m_owner;

}

int main()
{

    Album albumA;
    PlaylistTrack newTrack(&albumA);

    //Now the track knows what album it belongs to, but the album does not own the track yet.
    std::cout << "New Track's Album: " << newTrack.getAlbum.getTitle() << std::endl;

    //Now the album owns this track
    albumA.addTrack(newTrack);

    //The PlaylistTrack constructor could add itself to the album if you wanted to I think.

    return 0;
}
班级播放曲目:公共曲目
{
公众:
播放曲目(唱片集*所有者){m_所有者=所有者;}
Album*getAlbum(){返回m_所有者;}
私人:
专辑*m_所有者;
}
int main()
{
相册;
播放曲目和唱片集;
//现在,该曲目知道它属于哪个专辑,但该专辑尚未拥有该曲目。

std::你是说这个指针吗?如果你在类层次结构中发布一些代码,这会更容易。你说playlitrack扩展了Track,并且Track有一个指向相册的poiner。因此playlitrack将自动包含该指针,并且根据你的访问说明符,它也可以在playlitrack中访问。不是playlis吗不仅仅是“包含指向它所属的专辑的指针”?谢谢,你已经理解了我的问题。很难正确地提出这个问题,因为我不知道我想要理解的内容的正确术语。我感谢你的回答。