怎么会找不到定义呢?

kolige kolige 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
test.h:

template<class T>
class List
{
protected:
int size;
public:
List():size(0){}
bool empty()
{
return size==0;
}
virtual void insert(T t,int position)=0;
};
template<class T>
class ArrayList:public List<T>
{
private:
int maxSize;
T* t;
public:
ArrayList(int initSize=20):maxSize(initSize)
{
t=new T[initSize];
}
void insert(T t,int position);
};


test.cpp:

#include "test.h"
template<class T>
void ArrayList<T>::insert(int t,int position)
{
cout << "ArrayList" << endl;
} ;

然后再新建一个吹cpp文件

#include "iostream"
#include "test.h"
using namespace std;
int main()
{
int a;
List<int> *l=new ArrayList<int>;
l->insert(a,5);
return 0;
}

结果在连接的时候出错,说8: undefined reference to `ArrayList<int>::insert(int, int)'。
而把test.cpp里面的内容放到test.h里面就可以。
我想问问是什么原因?
运行环境是CFREE,而且.h和.cpp都是直接添加的。难道还要什么手段,把.cpp和.h文件关联起来?编译器不会自己寻找??
...全文

相关推荐

idea 找不到符号或找不到包的几种解决方法

"idea 找不到符号或找不到包的解决方法"一、关于IDEA找不到符号或找不到包的原因分析:在使用IDEA进行编程时,可能会遇到找不到符号或找不到包的问题,这是因为IDEA编译器无法识别项目中的某些符号或包的缘故

weixin_38643212

IntelliJ IDEA 报错:找不到包或者找不到符号的问题及解决方案

解决方案 3:编码统一在开发过程中,编码风格和格式的不统一可能会导致找不到包或者找不到符号的问题。因此,需要确保项目中的编码风格和格式是一致的,这样可以避免找不到包或者找不到符号的问题。

weixin_38724349

串口通信关于串口找不到的问题

今天,我们将讨论串口通信中关于串口找不到的问题,并提供两种解决方案。串口通信的原理是通过串口将数据传输到外部设备中,但是如果串口找不到,数据就不能传输,导致通信失败。那么,什么是串口找不到的问题?

说真心谎话

Maven 错误找不到符号的解决方法

在本文中,我们将详细介绍如何解决 Maven 错误找不到符号的问题。首先,让我们来说说第一种情况:项目编码格式不统一。当项目编码格式不统一时,Maven 就会出现找不到符号的错误。

weixin_38693528

错误:找不到或者无法加载主类

解决“找不到或无法加载主类”错误解决“找不到或无法加载主类”错误的方法很简单:1. 首先,检查 Java 环境变量是否正确配置。

秋之白话
评论 15
收藏 已收藏
分享
返回顶部
kolige
C++ 语言 65,214 成员 250,514 内容