C++ I got 2 errors, line 35 and 36. How to fix it? Make my code work... #include
ID: 3695576 • Letter: C
Question
C++
I got 2 errors, line 35 and 36.
How to fix it? Make my code work...
#include <iostream>
#include <iomanip> // std::setprecision
using namespace std;
class BasicShape //Abstract base class
{
protected:
double area;
private:
string name;
public:
virtual void calArea()=0; //Pure Virtual Function
BasicShape(double a, string n):area(a),name(n){}
virtual void print();
string getName()
{
return name;
}
};
class Circle : public BasicShape {
private:
double radius;
public:
Circle(double a, string n, double r): BasicShape(a,n),radius(r) {}
virtual void calArea(){area = 3.14159 * radius * radius;
}
virtual void print()
{
cout<<"Radius::"<<radius;
cout<<"Area::"<<BasicShape::area;
cout<<"Name::"<<getName();
}
};
void poly()
{
BasicShape *pointer;
pointer->calArea();
pointer->print();
}
int main()
{
Circle c(10,"Round",0);
poly();
return 0;
}
Explanation / Answer
Try This:
#include <iostream>
#include <iomanip> // std::setprecision
using namespace std;
class BasicShape //Abstract base class
{
protected:
double area;
private:
string name;
public:
virtual void calArea()=0; //Pure Virtual Function
BasicShape(double a, string n):area(a),name(n){}
virtual void print();
string getName()
{
return name;
}
};
class Circle :: public BasicShape {
private:
double radius;
public:
Circle(double a, string n, double r): BasicShape(a,n),radius(r) {}
virtual void calArea(){area = 3.14159 * radius * radius;
}
virtual void print()
{
cout<<"Radius::"<<radius;
cout<<"Area::"<<BasicShape::area;
cout<<"Name::"<<getName();
}
};
void poly()
{
BasicShape *ptr;
ptr->calArea();
ptr->print();
}
int main(void)
{
Circle c(10,"Round",0);
poly();
return 0;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.