抽象类出现C++ILink32错误
C++ ILink32 error with abstract class
我有一个名为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::分配器>&,std::basic_string,std:,分配器>&aamp;,std:;分配器>&ap;,std::basic_string,td::分配器>>,std:分配器>&)'被引用摘自H:\2012\TRIMESTER 2\IT6253-C++编程\评估\问题5\WIN32\DEBUG\问题5.OBJ
我能帮我纠正这个错误吗?
链接中缺少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进行同样的操作。
我希望这会有所帮助。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- MSVC多行宏编译器错误
- C++生成器 10.2.3 [ilink32 错误] 致命:无法打开文件'FORMS.OBJ'
- 抽象类出现C++ILink32错误
- CURL ilink32错误:未解决的外部