c++ - 模板类不继承基模板类

标签 c++ templates inheritance

我正在尝试创建一个继承模板基类的模板子类,但在初始化模板子类时出现编译错误。我认为这是因为我可能没有正确定义子类的构造函数,但我不确定正确执行此操作的语法。

这是两个类的头文件:

template<typename T> class Matrix
{
public:

~Matrix();
Matrix();
Matrix(uint rows, uint columns);
uint height;
uint width;
uint stride;
size_t size;

private:
vector<T> elements;
T* firstElement;

};

template<typename T> class NumMatrix : public Matrix<T>
{
public:

NumMatrix(uint rows, uint columns) : Matrix<int>::Matrix<T>(uint rows, uint columns)
{

}
};

main.cpp

#include "Matrix.h"

using namespace std;

void main()
{
NumMatrix<int> A(2,2);
}

编译错误是:'NumMatrix::NumMatrix':没有重载函数需要 2 个参数

最佳答案

改变这个:

NumMatrix(uint rows, uint columns) : Matrix<int>::Matrix<int>(uint rows, uint columns)

NumMatrix(uint rows, uint columns) : Matrix<T>(rows, columns)

另外,为了符合标准(用更多编译器编译),改变这个:

void main()

int main()

关于c++ - 模板类不继承基模板类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22824659/

相关文章:

c++ - 初始化一个结构,其成员是另一个结构的数组

php - 我如何为 Joomla 1.6 创建自定义错误页面 (404)?

java - 将父级作为子级引用作为参数传递给接受子级作为 Java 中参数的函数

.net - 我们继承还是实现抽象类?

python - 如果输入参数在 Django 模板中无效,如何抛出异常

Java:继承和声明

c++ - 在 windows、nix 和 macos 上弹出错误消息框的最简单方法?

用于 10000 的数组乘法的 c++ 内联函数

c++ - 在另一个 map 中存储和重用 map 的迭代器值有多安全?

android - 带有 jquery 超大的 android 上的跳动背景图像