2
回答
C++中模板类中定义vector型的数据成员出错
百度AI开发者大赛带你边学边开发,赢100万奖金,加群:418589053   
#ifndef GRID_H_
#define GRID_H_

#include <vector>

typedef unsigned int size_t;

template <typename T> 
class grid {
public:

    grid();                               
    grid(size_t rows, size_t cols);       

private:
 vector<T> elems;
    size_t rows;
    size_t cols;
};

template <typename T> 
grid<T>::grid() : rows(0), cols(0) {}

template <typename T> 
grid<T>::grid(size_t rows, size_t cols) : elems(rows * cols), rows(rows), cols(cols) {}

#endif;

 
 
 
 
#include <iostream>
#include "grid.h"
using namespace std;

void main(){
    grid<int> box(10,10);
    system("pause");
    return ;
}

编译时出现如下问题:

1>e:\106source\grid\grid\grid.h(16): error C2143: 语法错误 : 缺少“;”(在“<”的前面)
1>          e:\106source\grid\grid\grid.h(19): 参见对正在编译的类 模板 实例化“grid<T>”的引用
1>e:\106source\grid\grid\grid.h(16): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\106source\grid\grid\grid.h(16): error C2238: 意外的标记位于“;”之前

*但是如何将grid类的声明与定义与main函数放在一个文件中就能成功编译,想了半天都不知道问题所在,望各位大神能指点一下,谢谢!

<无标签>
举报
INCADENT
发帖于5年前 2回/1K+阅
顶部