当我尝试分离代码时出现模板错误

时间:2020-03-20 16:21:34

标签: c++ templates header main

我的老师告诉我们,一个好的做法是将代码分隔在不同的文件中:main,funtions和header。 (他是对的还是我应该做不同的事情?我完全不信任他...)尝试做一个简单的例子(一个数字的绝对值),我设法做到了,但是后来我想使用一个模板,所以我不必定义数字的类型(我很习惯Matlab,所以我总是尝试使代码尽可能通用),但是随后,代码停止了工作。问题是模板,但是我没有足够的C ++知识来识别问题。我看不到任何奇怪的东西。这是代码。我使用的是Dev C ++,但是每次关闭项目时,文件都会消失,因此现在使用的是Qt。谢谢。

header.h

#ifndef HEADER_H
#define HEADER_H
#endif // HEADER_H

#include <iostream>
using namespace std;


// Prototipo de función
template <typename TIPOD>
TIPOD absoluto (TIPOD numero);

absoluto.cpp

// Funciones
#include "header.h"
#include<iostream>

template <typename TIPOD>
TIPOD absoluto( TIPOD numero){
    if (numero < 0){
        numero = numero * -1;
    }
    return numero;
}

main.cpp


// Main
int main() {
    // Definimos los datos
    int entero;
    float flotante;
    double doble;

    // Pedimos los datos al usuario
    cout<<"Introduce un entero: "; cin>>entero;
    cout<<"Introduce un float: "; cin>>flotante;
    cout<<"Introduce un doble: "; cin>>doble;

    //Llamamos a la función
    entero = holaa(entero);
    flotante = holaa(flotante);
    doble = holaa(doble);

    // Imprimirmos los resultados
    cout<<"\nEl absoluto del numero entero es: "<<entero<<endl;
    cout<<"El absoluto del numero flotante es: "<<flotante<<endl;
    cout<<"El absoluto del numero doble es: "<<doble<<endl<<endl;

    system("pause");
    return 0;
}

0 个答案:

没有答案
相关问题