小傻子 发表于 2015-2-13 15:11:08

大神来看看这个代码

主文件
#include<iostream>
#include "header.h"

int main()
{
        using namespace std;
        double d = {1.1, 2.2, 3.3, 4.4, 5.5};
        int i = {3, 4, 5, 1, 2};
        cout << "the max of the int is\t" << max5(i) <<endl;
        cout << "the max of the double is\t" << max5(d) << endl;
        cin.get();
        cin.get();
        return 0;
}
函数
#include "header.h"

template<typename T>
typename max5(T num[])
{
        T temp = num;
        int i = 1;
        for (; i < Arsize; ++i)
    temp = temp > num ?temp : num;
        return temp;
}
头文件
#ifndef HEADER_H
#define HEADER_H

        template<typename T>
    typename max5(T num[]);
        const int Arsize = 5;

#endif
显示
1>d:\鲁大师\作业\链接\链接\header.h(5): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\鲁大师\作业\链接\链接\2.cpp(12): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>1.cpp
1>d:\鲁大师\作业\链接\链接\header.h(5): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>正在生成代码...

ANDES 发表于 2015-2-13 15:21:34

把主函数main放在最后面,多出一个‘header.h’头文件。#include<iostream>
#include "header.h"
//#include "header.h"

template<typename T>
typename max5(T num[])
{
      T temp = num;
      int i = 1;
      for (; i < Arsize; ++i)
    temp = temp > num ?temp : num;
      return temp;
}

#ifndef HEADER_H
#define HEADER_H

      template<typename T>
    typename max5(T num[]);
      const int Arsize = 5;

#endif
int main()
{
      using namespace std;
      double d = {1.1, 2.2, 3.3, 4.4, 5.5};
      int i = {3, 4, 5, 1, 2};
      cout << "the max of the int is\t" << max5(i) <<endl;
      cout << "the max of the double is\t" << max5(d) << endl;
      cin.get();
      cin.get();
      return 0;
}

小傻子 发表于 2015-2-13 15:58:06

ANDES 发表于 2015-2-13 15:21
把主函数main放在最后面,多出一个‘header.h’头文件。#include
#include "header.h"
//#include "heade ...

没看懂

ANDES 发表于 2015-2-13 16:08:57

小傻子 发表于 2015-2-13 15:58
没看懂

把代码复制到编译器去调就知道了,代码是你自己写的,如果你看不懂我也没办法,我只是把顺序颠倒了一下。如果你还有问题,建议去看下“被调用函数的声明”这个知识点。

小傻子 发表于 2015-2-13 16:16:17

ANDES 发表于 2015-2-13 16:08
把代码复制到编译器去调就知道了,代码是你自己写的,如果你看不懂我也没办法,我只是把顺序颠倒了一下。 ...

1>d:\鲁大师\作业\practice\practice\header.h(5): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\鲁大师\作业\practice\practice\a.cpp(13): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int


不对啊

ANDES 发表于 2015-2-13 16:26:31

小傻子 发表于 2015-2-13 16:16
1>d:\鲁大师\作业\practice\practice\header.h(5): error C4430: 缺少类型说明符 - 假定为 int。注意: C+ ...

我的编译器是VC++6.0工程建的是win控制台,文件是C++的(.cpp),我这边却可以运行成功。自己在慢慢找找原因吧。不要那么轻易的提问,这样不利于你的成长,都是很容易解决的错误。
页: [1]
查看完整版本: 大神来看看这个代码