c++ - 诊断未定义参考错误的来源
问题描述
我的代码在这里遇到了一点问题——我的 Replit C++ 代码一直抱怨对 inarray::intarray(int) 的未定义引用,可能是“intarray d(432);”行,但我发誓我已经在我的 intarray.h 和 intarray.cpp 文件。知道是什么问题吗?代码如下,在此先感谢。这是驱动程序文件:
#include <iostream>
#include "intarray.h"
using std::cout;
using std::endl;
using std::cin;
int main(){
intarray d(432);
}
这是cpp文件
#include <iostream>
#include <array>
#include <math.h>
#include <utility>
#include <initializer_list>
#include "intarray.h"
using std::cout;
using std::endl;
using std::string;
using std::array;
using std::ceil;
template <class T>
intarray<T>::intarray(T inp){
int digitcount=1;
if (typeid(T) == typeid(int)){
intptr =new int[digitcount]{inp};
}
if (typeid(T) == typeid(string)){
digitcount=ceil(inp.length()/19);
cout << digitcount<<endl;
intptr =new int[digitcount];
}
}
template <class T>
void intarray<T>::printdigits(){
/*for (const auto& i: digits){
cout << i;
}*/
for (int i=0;i<arraysize;i++){
cout<<intptr[i];
}
}
这是头文件:
#include <iostream>
#include <array>
using std::cout;
using std::endl;
using std::string;
using std::array;
//using std::array;
#include <utility>
#include <initializer_list>
#ifndef intarray_h
#define intarray_h
template <class T>
class intarray{
private:
int arraysize=1;
int *intptr;
public:
intarray()=default;
intarray(T inp);
void printdigits();
int getSize(){return arraysize;};
};
#endif
解决方案
推荐阅读
- c# - 即使在安装 .NET core SDK 后,Dotnet 命令也不起作用
- javascript - 生成唯一的 id 对
- c# - RestClient 有效,但 HttpWebRequest 无效
- reactjs - Flutter 或 React Native - 更适合 Web 导出?
- javascript - 使用javascript ajax和django逐块上传大文件(如2gb),无需任何api调用
- javascript - 为什么我的 `lyrics` 变量在 async/await 函数之外返回一个空字符串
- html - 执行 Thymeleaf :从变量插入
- distribution - 如何在时间表之外获得可变的乘客到达率?
- javascript - 为什么当我运行 javascript 函数时我的 RAM 会过载?
- php - WordPress:保护/转义文件内容的输出 - 在 PHP 中通过 @fread() 读取