0

LibItem という抽象クラスと、このクラスから派生した DVD クラスがあります。

これが私のコードです:

DVD.h:

//---------------------------------------------------------------------------

#ifndef DVDH
#define DVDH

class DVD : public LibItem
{
public:
    DVD(const std::string&, const std::string&, const std::string&, const std::string&, const std::string&, const std::string&, int, const std::string&, const std::string&, const std::string&);
    void setRunningTime(int RunningTimeDetails);
    int getRunningTime();
    void setDirector(const std::string&);
    std::string getDirector();
    void setStudio(const std::string&);
    std::string getStudio();
    void setProducer(const std::string&);
    std::string getProducer();
    void PrintDetails();

private:
    DVD();
    int RunningTime;
    std::string Director;
    std::string Studio;
    std::string Producer;

};


//---------------------------------------------------------------------------
#endif

DVD.cpp:

//---------------------------------------------------------------------------

#pragma hdrstop

#include "DVD.h"

DVD::DVD(const std::string& setItemTitle, const std::string& setItemAuthor, const std::string& setItemReleaseDate, const std::string& setItemCopyright, const std::string& setItemGenre, const std::string& setItemStatus, int setItemRunningTime, const std::string& setItemDirector, const std::string& setItemStudio, const std::string& setItemProducer)
{
setDetails(setItemTitle, setItemAuthor, setItemReleaseDate, setItemCopyright, setItemGenre, setItemStatus);
setRunningTime(setItemRunningTime);
setDirector(setItemDirector);
setStudio(setItemStudio);
setProducer(setItemProducer);
}
void DVD::setRunningTime(int RunningTimeDetails)
{
RunningTime = RunningTimeDetails;
}
int DVD::getRunningTime()
{
return RunningTime;
}
void DVD::setDirector(const std::string& DirectorDetails)
{
Director = DirectorDetails;
}
std::string DVD::getDirector()
{
return Director;
}
void DVD::setStudio(const std::string& StudioDetails)
{
Studio = StudioDetails;
}
std::string DVD::getStudio()
{
return Studio;
}
void DVD::setProducer(const std::string& ProducerDetails)
{
Producer = ProducerDetails;
}
std::string DVD::getProducer()
{
return Producer;
}
void DVD::PrintDetails()
{
cout << "Title: " << getTitle() << endl;
cout << "Author: " << getAuthor() << endl;
cout << "Release Date: " << getReleaseDate() << endl;
cout << "Copyrite: " << getCopyright() << endl;
cout << "Genre: " << getGenre() << endl;
cout << "Status: " << getStatus() << endl;
cout << "Running Time: " << getRunningTime() << endl;
cout << "Director: " << getDirector() << endl;
cout << "Studio: " << getStudio() << endl;
cout << "Producer: " << getProducer() << endl;
}

//---------------------------------------------------------------------------
#pragma package(smart_init)

このエラーが発生しています:

[ILINK32 エラー] エラー: 未解決の外部 'DVD::DVD(std::basic_string, std::allocator >&, std::basic_string, std::allocator >&, std::basic_string, std::allocator >&, std::basic_string, std::allocator >&, std::basic_string, std::allocator >&, std::basic_string, std::allocator >&, int, std::basic_string, std::allocator >&, std::basic_string, std::allocator >&, std::basic_string, std::allocator >&)' H:\2012\TRIMESTER 2\IT6253 から参照 - C++ PROGRAMMING\ASSESMENT\QUESTION 5\WIN32\DEBUG\QUESTION 5.オブジェクト

このエラーを修正するための助けをお願いできますか?

4

1 に答える 1

0

リンクから DVD.o が見つかりません。プログラムまたは Makefile ファイルをリンクする方法を投稿していただければ、それをどこにどのように追加するかをお知らせします。

一般に、プログラムが main.cpp ファイルで構成され、DVD.h やその他のヘッダーが含まれているとします。また、次のコマンドを使用してコンパイル (およびリンク) すると仮定します。

g++ main.cpp -o myprogram

プログラムで DVD 本体を使用できるようにするには、次のことを行う必要があります。

g++ main.cpp DVD.cpp -o myprogram

もちろん、Makefile を使用する場合は異なる可能性があり、myprogram コードをリンクする場所に次のようなものが表示される場合がありますg++ main.o -o myprogram。この場合、main.o をビルドする場所を見つけ、DVD.o についても同じことを行う必要があります。

それが役立つことを願っています。

于 2012-08-30T14:38:47.520 に答える