Ich habe ein sehr einfaches Problem, aber aufgrund meiner Unerfahrenheit in C++ kann ich nicht scheinen, es zu lösen. Ich habe eine Klasse PlayList, die ein dynamisch zugeordnetes Array als private Daten Mitglied hat. Ich habe noch nie dynamische Arrays verwendet und bin verwirrt darüber, wie man ein bestimmtes Objekt hinzufügt und ein bestimmtes Objekt löscht. Ich komme an einem Song-Objekt vorbei und muss es löschen. Wie würde ich das tun? Mein aktueller Code ist unten (Song ist eine separate Klasse, die ich bin auch nicht)Löschen eines Objekts aus einem dynamisch zugewiesenen Array von Objekten in einer Klasse
#ifndef PROJ5_PLAYLIST_H_INCLUDED
#define PROJ5_PLAYLIST_H_INCLUDED
#include "song.h"
#include <iostream>
class PlayList{
private:
Song* playList_arr;
int size_of_playlist;
int numberOfSongs;
public:
PlayList();
~PlayList();
void AddSong(const Song& s);
bool DeleteSong(const Song& s);
void ShowAll() const;
void play(int num=1);
void ShowStatus()const;
};
#endif // PROJ5_PLAYLIST_H_INCLUDED
CPP-Datei
#include <iostream>
#include "proj5_playlist.h"
PlayList::PlayList()
{
size_of_playlist = 2;
numberOfSongs = 0;
playList_arr = new Song[size_of_playlist];
}
PlayList::~PlayList()
{
delete [] playList_arr;
}
void PlayList::AddSong(const Song& s)
{
if(numberOfSongs==size_of_playlist){
Song* arr=new Song[size_of_playlist+1];
arr[size_of_playlist]=s;
for(int i=0;i<size_of_playlist;i++)
{
arr[i]=playList_arr[i];
}
playList_arr=arr;
delete arr;
arr = NULL;
}
else{
numberOfSongs++;
playList_arr[numberOfSongs-1] = s;
}
}
void PlayList::DeleteSong(const Song& s)
{
}
Verwenden Sie einen 'std :: vector'. –