私は今、私に多くの問題を引き起こしているこの宿題を持っています。私の先生はクラスで非常にあいまいで、コミュニケーションをとるのが難しい. ここで自分の考えを明確にするために一生懸命努力します。割り当ては次のとおりです。
(3 点) 次のクラス ヘッダー ファイルを使用して、リストされている各アクセサー関数とミューテーター関数のクラスのソース コードを記述します。(関数がパラメーターをどのようにリストしているかに注意してください。参照渡しと値渡しの間で異なります。) コードにコメントすることを忘れないでください。重要です!
class Album { private: char * artist; // band or singer’s name char * title; // title of the album int year_released; // year the album is released char * record_label; // name of company produced album int num_songs; // number of songs on the album int num_minutes_long; // length (mins) of album char * genre; // genre of artist (eg, rock, pop, …) public: //constructors Album(); Album(char *& a, char *& t); //deconstructor ~Album(); //accessors and mutators bool set_artist(char * a); bool set_title(char * t); bool set_year_released(int value); bool set_record_label(char *& label); bool set_num_songs(int value); bool set_num_minutes_long(int value); bool set_genre(char * g); bool get_artist(char *& a); bool get_title(char *& t); int get_year_released(); bool get_record_label(char *& label); int get_num_songs(); int get_num_minutes_long(); bool get_genre(char *& g); };
これまでの私の仕事は次のとおりです。
bool Album::set_artist(char * a)
{
*artist = a;
}
bool Album::set_title(char * t)
{
*title = t;
}
bool Album::set_year_released(int value)
{
year_released = value;
}
bool Album::set_record_label (char *& label)
{
*record_label = label;
}
bool Album::set_num_songs(int value)
{
num_songs = value;
}
bool Album::set_number_minutes_long(int value)
{
num_minutes_long = value;
}
bool Album::set_genre(char * g)
{
*genre = g;
}
bool Album::get_artist(char *& a)
{
return artist;
}
bool Album::get_title(char *& t)
{
return title;
}
int Album::get_year_released()
{
return year_released;
}
bool Album::get_record_label(char *& label)
{
return *record_label;
}
入力は配列になります。
私の質問:
まず、私は正しい軌道に乗っていますか?
(char * a)
例えば関数で使う場合、これは のアドレスを渡すということa
ですよね?それでは、ポイント*artist=a;
のアドレスを何に変更しますか?a
また、void が予想される場合、関数は bool です。なんで?
すべての
set_xxx
関数のパラメーターは*
... ですが、set_record_label の場合は*&
です。それは私には間違いのようです。そうですか?パラメータとして
*&
との違いは何ですか?*
お時間をいただきありがとうございます。私はここにたくさんあることを知っています。