首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为什么通不过编译呢?该怎么处理

2012-03-18 
为什么通不过编译呢?#include iostreamusing namespace stdtemplate class elemTypevoid print( elem

为什么通不过编译呢?
#include <iostream>
using namespace std;
template <class elemType>
void print( elemType *pbegin, elemType *pend )
{ while ( pbegin != pend ) {
cout << *pbegin << ' ';
++pbegin;
}
}
template<class length,class elemType>
int length(elemType *c){
return sizeof(c)/sizeof(elemType);
}

int main(){
 
int ia[]={1,2,3,4,5,8,7,3,2};
char ib[]={"a,b,c,d,e,f,g,h"};
float ic[]={1,2,3,4,5,6,7};
int length_a=0;
length(ia);
 /*int length_b=length(ib,char);*/
// int length_c=length(ic,float);


return 0;
}



[解决办法]

C/C++ code
#include <iostream>using namespace std;// 上面的全是编译指令, 最好和下面的正文分开两行写.template <typename elemType>            // typename 在这类等同于 class, 只不过 class 还用于声明一个类, 所以我在此使用 typename. 这是无关紧要的, 但是一定要保持你的一贯风格.void print(elemType *pbegin, elemType *pend){     while (pbegin != pend)     {        cout << *pbegin << ' ';        ++pbegin;    }}template<class elemType>int length(elemType *c){    return sizeof(c) / sizeof(elemType);}int main(int argc, char **argv){     int ia[]={1,2,3,4,5,8,7,3,2};    char ib[]={"a,b,c,d,e,f,g,h"};    float ic[]={1,2,3,4,5,6,7};    int length_a=length(ia);    int length_b=length(ib);    int length_c=length(ic);    cout <<length_a <<endl;    cout <<length_b <<endl;    cout <<length_c <<endl;    return 0;}
[解决办法]
上面的程序中
C/C++ code
template<class elemType>         // 这的 class 也应该改为 typename, 以保持一致.int length(elemType *c){    return sizeof(c) / sizeof(elemType);}
[解决办法]
楼主还是看一下模版..
C/C++ code
template<class [color=#FF0000]length[/color],class elemType>int [color=#993300]length[/color](elemType *c)//明显重定义,不知道LZ是不是要把Length作为返回类型{return sizeof(c)/sizeof(elemType);}
[解决办法]
return sizeof(c)/sizeof(elemType);
这句是个固定值没意义
[解决办法]
探讨

C/C++ code

#include <iostream>
using namespace std;

// 上面的全是编译指令, 最好和下面的正文分开两行写.
template <typename elemType> // typename 在这类等同于 class, 只不过 class 还用于声明一个类, 所以我在此使用 typename. 这是无关紧要的, 但是……

热点排行