P
Protoman
I keep getting -1#INF from this code; I can't figure out what's wrong.
#include <iostream>
#include <cstdlib>
#include <memory>
using namespace std;
class invalidArg
{
public:
virtual void Write(long long& arg)const{cout << arg << " is invalid. "
<< endl;}
virtual void Write(long long& arg,long long& arg2)const{cout << arg <<
"and "
<< arg2 << " are invalid. " << endl;}
};
class numbers
{
public:
numbers()i(3.1415926535),e(2.71828182846){}
const long double pi;
const long double e;
};
class mathrotected numbers
{
public:
long long* exp(const long long& base,long long expn)throw(invalidArg)
{
if(base<=0)
throw invalidArg();
else if(base<=0&&expn<=0)
throw invalidArg();
long long* result=new long long(1);
for(;expn>0;expn--)
*result*=base;
return result;
}
long double* area(const long long& radius)throw(invalidArg)
{
if(radius<=0)
throw invalidArg();
long long temp=*exp(radius,2);
long double temp2=pi*temp;
long double* result=new long double(temp2);
return result;
}
};
math Math;
int main()
{
auto_ptr<long long> radius(new long long);
try
{
cout << "Enter a radius: ";
cin >> *radius;
auto_ptr<long double> temp(Math.area(*radius));
cout << "Here's the area of a circle with a " << *radius << " radius: "
<< *temp << endl;
}
catch(invalidArg& inv)
{
inv.Write(*radius);
}
system("PAUSE");
return 0;
}
Can you help me?
#include <iostream>
#include <cstdlib>
#include <memory>
using namespace std;
class invalidArg
{
public:
virtual void Write(long long& arg)const{cout << arg << " is invalid. "
<< endl;}
virtual void Write(long long& arg,long long& arg2)const{cout << arg <<
"and "
<< arg2 << " are invalid. " << endl;}
};
class numbers
{
public:
numbers()i(3.1415926535),e(2.71828182846){}
const long double pi;
const long double e;
};
class mathrotected numbers
{
public:
long long* exp(const long long& base,long long expn)throw(invalidArg)
{
if(base<=0)
throw invalidArg();
else if(base<=0&&expn<=0)
throw invalidArg();
long long* result=new long long(1);
for(;expn>0;expn--)
*result*=base;
return result;
}
long double* area(const long long& radius)throw(invalidArg)
{
if(radius<=0)
throw invalidArg();
long long temp=*exp(radius,2);
long double temp2=pi*temp;
long double* result=new long double(temp2);
return result;
}
};
math Math;
int main()
{
auto_ptr<long long> radius(new long long);
try
{
cout << "Enter a radius: ";
cin >> *radius;
auto_ptr<long double> temp(Math.area(*radius));
cout << "Here's the area of a circle with a " << *radius << " radius: "
<< *temp << endl;
}
catch(invalidArg& inv)
{
inv.Write(*radius);
}
system("PAUSE");
return 0;
}
Can you help me?