一个类模板程序,代码很段,帮忙分析一下是什么地方错了

iloveweifang 2009-01-28 08:21:42
代码:
#include <windows.h>
#include "stdafx.h"
template<typename T,int maxsize>
class A{
private:
T figure[maxsize];
public:
A();
void print(){
for(int i=0;i<maxsize;i++)
printf("%c ",figure[i]);
}
};
template<typename T,int maxsize> //类模板成员函数的类外定义
A<T,maxsize>::A(){
char p;
p=(char)GetModuleHandle(NULL);
for(int i=0;i<4;i++)
figure[i]=*(T *)p;
}
template<> //类成员函数特化
void A<int>::print(){
for(int i=0;i<maxsize;i++)
printf("%x ",figure[i]);
}
int main(int argc, char* argv[])
{
A<char,4> a;
a.print();
return 0;
}
编译时老是提示以下错误:
E:\C++\类模板\类模板.cpp(24) : error C2976: 'A' : too few template arguments
E:\C++\类模板\类模板.cpp(15) : see declaration of 'A'
E:\C++\类模板\类模板.cpp(24) : error C2027: use of undefined type 'A<int>'
E:\C++\类模板\类模板.cpp(24) : error C2912: explicit specialization; 'void __cdecl print(void)' is not a function template
E:\C++\类模板\类模板.cpp(24) : see declaration of 'print'
E:\C++\类模板\类模板.cpp(25) : error C2065: 'maxsize' : undeclared identifier
E:\C++\类模板\类模板.cpp(26) : error C2065: 'figure' : undeclared identifier
E:\C++\类模板\类模板.cpp(26) : error C2109: subscript requires array or pointer type
我对模板的学习糟糕透了,以上代码都是按书上的方法写的啊,就是不能编译通过啊,郁闷死了
...全文
98 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
iloveweifang 2009-01-28
  • 打赏
  • 举报
回复
谢谢楼上的朋友
iloveweifang 2009-01-28
  • 打赏
  • 举报
回复
谢谢楼上的朋友
xiaoyisnail 2009-01-28
  • 打赏
  • 举报
回复
见注释

#include <windows.h>
#include <stdio.h>
#include "stdafx.h"

template <typename T,int maxsize>
class A{
private:
T figure[maxsize];
public:
A();
void print(){
for(int i=0;i <maxsize;i++)
printf("%c ",figure[i]);
}
};

template <typename T,int maxsize>
A <T,maxsize>::A(){
char p;
p=(char)GetModuleHandle(NULL);
for(int i=0;i <4;i++)
figure[i]=*(T *)p;
}

template <>
void A <int, 10>::print(){//这里错了,少了个模板参数
for(int i=0;i <maxsize;i++)
printf("%x ",figure[i]);
}

int main(int argc, char* argv[])
{
A <char,4> a;
a.print();
return 0;
}

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧