error LNK1120: 1 个无法解析的外部命令(详细小问题解释)_fatal error lnk1120_ydc_ss的博客-程序员宝宝

技术标签: 1 个无法解析的外部命令  

由于自己写代码时有不严谨,这个错误碰到过不少次。

首先,根据百度知道上的解释:

这个问题的原因是有头文件,但是找不到实现。
有两个原因:1.只包含了头文件,只有这个函数的声明,没有包含这个函数的实现(实现一般放在cpp文件中的)。所以只能通过编译,连接不成功。
2.另一个原因是函数的声明和实现都放在头文件中了,一般要把声明放头文件中,实现放在cpp文件中。这样每个#include该头文件的文件都会有一份该函数的实现,连接的时候,连接器不知道连接哪一个实现,于是报错。
反正开始看到这些解释我是一脸懵逼的,但自己找到问题后,发现这个解释还是挺专业的。

接下来是我遇到这个错误的原因

1.

class BinaryTreeNode
{
	friend class BinaryTree;
private:
	char element;//节点的数据域
	BinaryTreeNode *leftChild;//结点的左孩子节点
	BinaryTreeNode *rightChild;//结点的右孩子节点
public:
	BinaryTreeNode();//默认构造函数
	BinaryTreeNode(const char&ele)//给定数据域的值的构造函数
	{
		element=ele;
		leftChild=NULL;
		rightChild=NULL;
	}
	BinaryTreeNode(const char&ele,BinaryTreeNode*l,BinaryTreeNode*r)//给定数据值和左右孩子结点的构造函数
	{
		element=ele;
		leftChild=l;
		rightChild=r;
	}
	BinaryTreeNode*getLeftChild()const//返回该节点的左孩子节点
	{
		return leftChild;
	}
	BinaryTreeNode*getRighttChild()const//返回该节点的右孩子节点
	{
		return rightChild;
	}
}
这是二叉树的结点类的一部分,而声明了却没有定义的默认构造函数正是造成标题错误的其中之一。所以就个人经验而谈,类中声明的函数结构请一定别忘了定义(简单两个大括号也好呀),不然标题这个错误找起来真心痛苦。

2.

void mian()
{
	
}
细心的人可能发现主函数main()打错了,这也是造成标题错误的一个原因。发现自己干了这档子事情的时候感到非常羞愧,不过看到朋友也干了这档子事儿后,莫名一阵开心 微笑



以上便是我到现在为止遇到的,之后遇到新的问题再继续追加。




附:vs2015中,类中声明的函数若未定义将不会报错。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ydc_ss/article/details/53227732

智能推荐

牛逼!在IDEA里搞Spring Boot Mybatis反向工程,太爽咯~_互联网架构的博客-程序员宝宝

上一篇:委员建议对996工作制进行监管,热搜第一!网友沸腾了,这个必须转~来源:https://blog.csdn.net/m0_37922192/article/details/1092...

linux下将不同线程绑定到不同core和cpu上_进程运行的时候不能切换core_大隐隐于野的博客-程序员宝宝

linux下的单进程多线程的程序,要实现每个线程平均分配到多核cpu,主要有2个方法1:利用linux系统自己的线程切换机制,linux有一个服务叫做irqbalance,这个服务是linux系统自带的,默认会启动,这个服务的作用就是把多线程平均分配到CPU的每个核上面,只要这个服务不停止,多线程分配就可以自己实现。但是要注意,如果线程函数内部的有某个循环,且该循环内没有任何系统调用的话,可能...

(精华2020年6月9日更新)Angular实战篇 axio的封装_angular使用qs_2b勿扰的博客-程序员宝宝

首先先建个axio服务ng g service 文件目录ts文件import { Injectable } from '@angular/core';import axios from 'axios';import Qs from 'qs';axios.defaults.timeout = 5000;import { environment } from '../../environments/environment';console.log(environment.baseURL);

NB-IOT的基础知识_安传物联的博客-程序员宝宝

1、NB-IOT有哪些优势NB-IOT可以同时支持单小区5万用户连接,并且功耗也十分低,资费便宜2、NB-IOT支持哪些种类的通讯方式NB-IOT目前支持UDP、TCP等协议3、NB-IOT支持定位吗?NB-IOT是支持接入了电信物联网平台的产品定位的4、NB-IOT的模式切换怎么控制由使用的NB卡确认使用不同的APN,APN信息配合和基站协调模式切换时间。5、NB-IOT基站可不可以寻呼终端设备可以在Connect或者IDLE状态下寻呼  6、NB-IOT是否都采用eSIMSIM卡还有eSIM都将会长期共

iOS的tableview与请求刷新数据一块的话._卡乐咪小Y的博客-程序员宝宝

分好viewwillappear和viewdidload,还有viewdidload这些方法,注意好顺序要不然就会造成,想要等tableview加载完在请求刷新数据,但是却先请求刷新数据,然后Tableview再加载显示出来。。。以下是正确的写法上边的写法:       viewdidload先配置视图,viewwillappear无法确保t

php html 录音,recorder.js 基于 HTML5 实现录音功能_Feng.HE的博客-程序员宝宝

recorder.jsmicrophone基于HTML5的录音功能,输出格式为mp3文件。前言完全依赖H5原生API所涉及的API:WebRTC、AudioContext、Worker、Video/Audio API、Blob、URL兼容性Chrome、FF、Edge、QQ、360(注:目前IE和Safari全版本不兼容)其中Chrome47以上以及QQ浏览器强制要求HTTPS的支持请尝试使用FF...

随便推点

happy-ip开发udp client样例_wang19840301的博客-程序员宝宝

主函数代码如下#include <ip/client/udp_client.h>#include "client_message_factory.h"#include <iostream>#include <utils.h>#include <thread>#include <chrono>using namespace ...

oracle trim函数与字符串替换的内存实现简单猜测_知所行止的日毕一省的博客-程序员宝宝

群里讨论问题说,需要将某个字符串例如 "0100100100000” 转换成"0122122100000"的形式,也就是首尾的0不变,中间的0换成2。本文就实现给出两种方式,并猜测了字符串替换的汇编实现原理。

浏览器的同源策略_dd_cs_ccc的博客-程序员宝宝

同源策略什么是同源简介​ 同源既是协议、域名、和端口三者相同,下面相对http://store.company.com/dir/page.html同源检测的示例。​ 浏览器中的大部分内容都是受同源策略限制的,但是以下三个标签可以不受限制<img src=XXX><link href=XXX><script src=XXX>为什么要有同源策略​ 如果不会操作的来源进行验证,那么不同源的数据和资源(如HTTP头、Cookie、DOM、localSto

python元组 (tuple,即常量数组)_weixin_34112030的博客-程序员宝宝

为什么80%的码农都做不了架构师?>>> ...

查看kingbase版本号_kingbase版本查看_托马斯小火车喷雾又喷烟,一直喷,喷喷喷.的博客-程序员宝宝

There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence.

PHP程序员最常犯的11个MySQL错误_暴风战狼的博客-程序员宝宝

对于大多数web应用来说,数据库都是一个十分基础性的部分。如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中举足轻重的一份子。  对于很多新手们来说,使用PHP可以在短短几个小时之内轻松地写出具有特定功能的代码。但是,构建一个稳定可靠的数据库却需要花上一些时日和相关技能。下面列举了我曾经犯过的最严重的11个MySQL相关的错误(有些同样也反映在其他语言/数据库的使用上)。。。

推荐文章

热门文章

相关标签