C++ 聚合、模板和动态向量

C++ 聚合、模板和动态向量,c++,templates,vector,aggregate-functions,C++,Templates,Vector,Aggregate Functions,我一直有3个错误。它们都与我聚合模板的方式有关,但我找不到任何帮助我解决这个问题的方法。我的老师不太清楚我们应该如何得到他希望我们得到的输出 In file included from main.cpp:10: ./Table.h:15:9: error: use of class template 'RowAray' requires template arguments 这是我写的 RowAray.cpp \ifndef ROWARAY\u H//如果未定义常量ROWARAY\u H,则不

我一直有3个错误。它们都与我聚合模板的方式有关,但我找不到任何帮助我解决这个问题的方法。我的老师不太清楚我们应该如何得到他希望我们得到的输出

In file included from main.cpp:10:
./Table.h:15:9: error: use of class template 'RowAray' requires template arguments
这是我写的

RowAray.cpp

\ifndef ROWARAY\u H//如果未定义常量ROWARAY\u H,则不执行
#定义ROWARAY\u H//定义常量ROWARAY\u H
#包括
#包含//坏的\u alloc异常所需
#包含退出功能所需的//项
模板
罗瓦莱班{
私人:
整数大小;
T*行数据;
void memError();//处理内存分配错误
void subError();//处理的下标超出范围
公众:
RowAray(T);//用于构造行数组对象
~RowAray(){delete[]rowData;}//用于从行数组中取消分配动态分配的内存
int getSize(){return size;}//用于返回行数组长度的内联访问器成员函数
T getData(inti){return((i>=0&&i1?colSize:1;
//为阵列分配内存。
尝试
{
rowData=新的T[尺寸];
}
捕获(错误分配)
{
memError();
}
//初始化数组。
对于(int count=0;countgetSize();}//用于返回列大小
T getRec(int,int)//用于返回插入的二维数组的随机数
};
模板
表::表(intr,intc){
//设置行大小
这->szRow=r;
//声明记录数组
记录=新建行*[this->szRow];
//每行大小
int-allCol=c;
//创建记录数组
for(int i=0;iszRow;i++){
记录[i]=新罗瓦雷(allCol);
}
}
模板
T表::getRec(int行,int列){
//用于返回随机生成的数组数的if-else语句
如果(行>=0&&rowszRow&&col>=0&&colgetSize()){
返回记录[行]->获取数据(列);
}否则{
返回0;
}
}
模板
表::~Table(){
//删除每条记录
for(int i=0;iszRow;i++){
删除记录[i];
}
删除[]条记录;
}
#endif/*表H*/
main.cpp

#包括
#包括
#包括
#包括
使用名称空间std;
//用户库
#包括“RowAray.h”
#包括“表h”
//全局常数
//功能原型
模板
无效路径(T*,int);
模板
无效prntTab(常数表&);
//行刑从这里开始!
int main(int argc,字符**argv){
//初始化随机种子
静态施法(时间(0));
//声明变量
int行=3,cols=4;
//用整数和浮点数测试行
罗瓦雷a(3);
罗瓦雷b(4);
cout“RowAray”是一个模板,有一个模板参数:

template <class T>
class RowAray
这里;但这只是基于对这堆代码的粗略观察,所以不要自动相信我的话。您需要弄清楚您打算在这里做什么,并指定正确的模板参数

这不是所示代码中唯一的无参数引用。您需要找到并修复所有这些引用

此外,你还甩了:

using namespace std;

在继续和
#包含
之前,如果不是完全错误的代码,则通常会产生微妙的、难以理解的编译错误。您还必须使用命名空间std;
摆脱
,尤其是当涉及到一堆
#包含
时。

谢谢你,这个作业是针对一个不属于我的编码范围的类的。它应该是一个复习作业,但我所选的先决条件类根本没有让我接触到面向对象编程,更不用说使用名称空间std的模板
是坏的mkey?
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <iomanip>
using namespace std;

//User Libraries
#include "RowAray.h"
#include "Table.h"

//Global Constants

//Function Prototype
template<class T>
void prntRow(T *,int);
template<class T>
void prntTab(const Table<T> &);

//Execution Begins Here!
int main(int argc, char** argv) {
   //Initialize the random seed
   srand(static_cast<unsigned int>(time(0)));

   //Declare Variables
   int rows=3,cols=4;

   //Test out the Row with integers and floats
   RowAray<int> a(3);
   RowAray<float> b(4);
   cout<<"Test the Integer Row "<<endl;
   prntRow(&a,3);
   cout<<"Test the Float Row "<<endl;
   prntRow(&b,4);

   //Test out the Table with a float
   Table<float> tab1(rows,cols);
   Table<float> tab2(tab1);
   //Table<float> tab3=tab1+tab2;

   cout<<"Float Table 3 size is [row,col] = Table 1 + Table 2 ["
           <<rows<<","<<cols<<"]";
   //prntTab(tab3);

   //Exit Stage Right
   return 0;
}

template<class T>
void prntRow(T *a,int perLine){
    cout<<fixed<<setprecision(1)<<showpoint<<endl;
    for(int i=0;i<a->getSize();i++){
        cout<<a->getData(i)<<" ";
        if(i%perLine==(perLine-1))cout<<endl;
    }
    cout<<endl;
}

template<class T>
void prntTab(const Table<T> &a){
    cout<<fixed<<setprecision(1)<<showpoint<<endl;
    for(int row=0;row<a.getSzRow();row++){
        for(int col=0;col<a.getSize();col++){
            cout<<setw(8)<<a.getRec(row,col);
        }
        cout<<endl;
    }
    cout<<endl;
}
template <class T>
class RowAray
template <class T>
class Table{
    private:
        int szRow;
        RowAray **records;
RowAray<T> **records;
using namespace std;