2016-05-06 6 views
-1

私は非常に単純な問題がありますが、私のC++の未熟さのために解決できないようです。私は私的なデータメンバーとして動的に割り当てられた配列を持つクラスPlayListを持っています。私は動的配列を使ったことが一度もありません。特定のオブジェクトを追加して特定のオブジェクトを削除する方法については混乱しています。 Songオブジェクトを参照渡ししていますので、削除する必要があります。どうすればいい?私の現在のコード(歌は私が含めていないよ別のクラスである)以下であるクラス内のオブジェクトの動的に割り当てられた配列からオブジェクトを削除する

#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ファイル

#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) 
{ 


} 
+0

'のstd ::ベクトル'を使用します。 –

答えて

0

は、(例えばベクトルやLinkedListのための)標準ライブラリのオブジェクトを使用します。 あなたが本当にあなたの動的配列を使用したい場合は、この試してみてください。

​​
関連する問題