【发布时间】:2021-02-28 17:15:43
【问题描述】:
我有几个头文件/源文件:FUNCS.h 和 FUNCS.cpp、MATRIX.h 和 MATRIX.cpp,以及 main.cpp .在 funcs 和我的 MATRIX 类中应该有复杂的库,但是当我尝试将它包含在我的 MATRIX.h 中时,我得到的错误是 complex 不是模板。 我应该在哪里包含库,以便我的所有标题都将 complex 定义为模板? 示例:
#pragma once
#include <complex>
class MATRIX
{
friend MATRIX sum(MATRIX a, MATRIX b);
friend MATRIX mult(MATRIX a, MATRIX b);
friend MATRIX vi4(MATRIX a, MATRIX b);
friend MATRIX operator * (const MATRIX& a, complex<int> b);
friend MATRIX operator * (complex<int> b, const MATRIX& a);
private:
complex<int>** M;
int m;
int n;
public:
MATRIX();
MATRIX(int _m, int _n);
MATRIX(int _m);
MATRIX(const MATRIX& _M);
complex<int> get(int i, int j);
void set(int i, int j, complex<int> value);
void Print();
MATRIX operator=(const MATRIX& _M);
complex<int>* operator[] (int index);
~MATRIX();
};
【问题讨论】:
-
您发布的代码有什么错误?请在问题中包含完整的错误消息
-
complex<int>->std::complex<int>。很可能是错字。 -
顺便说一下,将
_M定义为令牌的行为是未定义的。使用Matrix而不是MATRIX作为类名将不那么特殊。另外,您真的需要将有效负载存储为裸指针吗? -
std::complex没有int专业化。
标签: c++ function templates header project