Duda C++

Soy más o menos nuevo en este lenguaje, hago algunas practicas y tal... bueno en fin, lo tipico para ir entrando en el mundillo de la informatica, que es a lo que me quiero dedicar en la universidad.

Dejando eso de lado... estuve buscando por internet alguna función para hacer cálculos exponenciales, y he encontrado el pow(base,exponente). Por lo que sé, para usar dicha función hay que declarar la libreria cmath o math.h
#include "cmath"
#include "math.h"

(No estoy seguro de que se les llame librerias... xD), pero no puedo usar dicha función aún habiendolas declarado, en el complador me sale el siguiente error:

Ninguna instancia de función sobrecargada "pow" coincide con la lista de argumentos.

He creado mi propia función para hacer cálculos exponenciales (Ya sé que es una chorrada, pero por algo se empieza digo yo... xD), pero es que sabiendo que ya hay una función creada para ello, pues preferiría usar esa.
amuchamu escribió:#include <math.h>


Sigue dando el mismo error...
Perdona, antes iba con prisas.

¿En qué entorno estás compilando? Tiene pintas de que estás usando mal la función.

Prueba con esto:
#include <iostream>
#include <math.h>

using namespace std;

int main(){
   cout << pow(2,4) << endl;
}
Sigue igual... estoy usando el Visual Studio 2010
Si estás aprendiendo, lo mejor (en mi opinión) es usar cualquier distribución de Linux, e instalar el paquete build-essential, lo que te deja gcc y librerías instaladas y configuradas, y lo que es más importante: las páginas man con las referencias de funciones como pow. El código en sí está bien, salvo que pow creo recordar que podía usar o pow(double,double) o pow(int,double), y al no especificar, te está tomando los datos como int:

http://codepad.org/Sh2bo14f
Era eso... ambas variables (base y exponente) estaban declaradas como int, las he declarado como double y funciona, gracias ^^
6 respuestas