Para utilizar un puntero de cualquier tipo, debe apuntar a la memoria válida. En este momento, tiene un puntero que no está inicializado y apunta a la basura. Pruebe lo siguiente
double* price = new double();
Además es necesario tener cin a pasar no es un double
un double**
.
cin >> *price;
Tenga en cuenta que esto asignará nueva memoria a su proceso que debe liberarse más adelante. A saber, por la persona que llama de getPrice. Por ejemplo
double* p = getPrice();
...
delete p;
Lo ideal en este escenario que no se asignarán un puntero en absoluto, ya que introduce innecesaria sobrecarga de administración de memoria. Una implementación mucho más fácil sería la siguiente
double getPrice() {
double price;
cout << "Enter Price of CD: " << endl;
cin >> price;
return price;
}
genial ... la obtengo ahora. Gracias – user69514