LNK 2019未解决的外部问题
Trouble with LNK 2019 unresolved externals
好的,如前所述,我有两个未解决的外部错误。没有智能感知错误之类的,只有这两个链接错误。代码如下:
include "stdafx.h"
include < iostream >
using namespace std;
class circle; //forward declaration
class square
{
public:
square create_square(circle user_circle);
};
class circle
{
public:
friend square square::create_square(circle user_circle)
};
square square::create_square(circle user_circle)
{
square user_square(user_circle.get_circumference());
return user_square;
}
// function call
user_square = user_square.create_square(user_circle);
这不是整个程序,但错误似乎指向这批代码
错误1错误LNK2019:未解析的外部符号
"public: __thiscall circle::~circle(void)"(??1circle@@QAE@XZ)在函数
中引用"public: class square __thiscall square::create_square(class circle)"
(? create_square@square@@QAE ? AV1@Vcircle@@@Z)
C:UsersJohndocumentsvisual studio 2010ProjectsPROG5PROG5PROG5.obj
错误2错误LNK2019:未解析的外部符号
"public: __thiscall square::~square(void)"(??1square@@QAE@XZ)在函数
中引用"public: class square __thiscall square::create_square(class circle)"
(? create_square@square@@QAE ? AV1@Vcircle@@@Z)
C:UsersJohndocumentsvisual studio 2010ProjectsPROG5PROG5PROG5.obj
我真的被难住了,我不想随便改变代码,因为我的逻辑应该是正确的。一个圆对象被传递给create_square函数,该函数获得圆的直径,并将其作为正方形的周长。至于毫无意义的练习,这是为了一堂课。希望有人能帮忙,谢谢。
你声明了一个circle
析构函数和一个square
析构函数——但是你没有实现它们。
另外,您应该选择const引用而不是按值传递:
square create_square(circle const & user_circle);
此时出现错误是因为您按值传递了一个circle
——这意味着将创建并销毁一个临时对象——并且因为您按值返回了一个square
,这意味着将构造并销毁一个square
。
square square::create_square(circle user_circle)
{
square user_square(user_circle.get_circumference());
return user_square;
} // Destruction point of user_circle
// function call
user_square = user_square.create_square(user_circle);
问题是user_circle
按值传递给square::create_square
。因此,传递的参数被复制到接收参数。在函数返回时,对象需要被解构,但由于在类声明中,您只提供了析构函数声明,而不是链接器抱怨的定义。
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 节俭并发:未解决的外部问题
- 未解决的外部链接问题
- 在 C++ 中使用 C 代码与外部"C"的问题
- 编译示例 Cinder 项目时存在大量未解决的外部问题
- 为使用boost的预开发库构建c++包装器时未解决的外部问题
- 伊利希特中未解决的外部问题
- 在Visual Studio 2013中尝试使用C++连接到mysql时未解决的外部问题
- 格鲁问题,未解决的外部问题
- 编译多源文件时未解决的外部问题
- 为什么我的程序总是得到未解决的外部问题
- TinyXml未解决的外部问题
- 使用qt模板时无法解决外部问题
- C++ 外部问题 - 未定义的引用
- c++:无法解决的外部问题让我抓狂
- MS Detours 2.1-未解决的外部问题
- 使用boost::asio(visual studio12,x64)解决的外部问题
- libcURL在7.36重建后未解决的外部问题
- 未解决的外部问题c++
- LNK 2019未解决的外部问题