怎么会找不到定义呢?
test.h:
test.cpp:
然后再新建一个吹cpp文件
结果在连接的时候出错,说8: undefined reference to `ArrayList<int>::insert(int, int)'。
而把test.cpp里面的内容放到test.h里面就可以。
我想问问是什么原因?
运行环境是CFREE,而且.h和.cpp都是直接添加的。难道还要什么手段,把.cpp和.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编译器无法识别项目中的某些符号或包的缘故
IntelliJ IDEA 报错:找不到包或者找不到符号的问题及解决方案
解决方案 3:编码统一在开发过程中,编码风格和格式的不统一可能会导致找不到包或者找不到符号的问题。因此,需要确保项目中的编码风格和格式是一致的,这样可以避免找不到包或者找不到符号的问题。
串口通信关于串口找不到的问题
今天,我们将讨论串口通信中关于串口找不到的问题,并提供两种解决方案。串口通信的原理是通过串口将数据传输到外部设备中,但是如果串口找不到,数据就不能传输,导致通信失败。那么,什么是串口找不到的问题?
Maven 错误找不到符号的解决方法
在本文中,我们将详细介绍如何解决 Maven 错误找不到符号的问题。首先,让我们来说说第一种情况:项目编码格式不统一。当项目编码格式不统一时,Maven 就会出现找不到符号的错误。
错误:找不到或者无法加载主类
解决“找不到或无法加载主类”错误解决“找不到或无法加载主类”错误的方法很简单:1. 首先,检查 Java 环境变量是否正确配置。


