Question
#include using namespace std; // Here are class and function definitions used in program: // This program does run! Indicate output (if any) for each
#include
using namespace std;
// Here are class and function definitions used in program:
// This program does run! Indicate output (if any) for each numbered line.
// A class definition
class G // base class, thinking of Geometric objects
{
public:
G() { cout << "makeG ";}
~G() { cout << "Ggone " << endl;}
virtual void fun() const = 0;
protected:
int data;
};
// another class, thinking like a Box (rectangle)
class B : public G
{
public:
B(int i) : data(i) { cout << "makeB " << endl;}
~B() { cout << "Bgone ";}
void fun() const { cout << data * data << endl;}
// so the B fun does a square (data*data)
private:
int data;
};
// and another class, Circular reasoning
class C : public G
{
public:
C() { cout << "makeC " << endl; data = 8;}
~C() { cout << "Cgone ";}
void fun() const { cout << data << endl;}
};
// some functions using above classes
void gee(G& one) {one.fun();}
void bee(B& two) {cout << "bee works" << endl;}
void sea(C& the)
{
C *see = new C();
cout << "sea works ";
delete see;
}
// The main driver: Indicate output (if any) for each numbered line.
void main()
{
G *g; // 1.
B *b = new B(2); // 2.
C *c = new C(); // 3.
b->fun(); // 4.
c->fun(); // 5.
g = b; // 6.
g->fun(); // 7.
b->fun(); // 8.
c->fun(); // 9.
gee(*b); // 10.
bee(*b); // 11.
sea(*c); // 12.
// one of these casts could halt execution, thus the try-catch
// your answers below must clearly indicate where the exception is thrown:
try
{
static_cast(g)->fun(); // 13.
static_cast
dynamic_cast(g)->fun(); // 15.
dynamic_cast
}
catch (...) // catches any thrown exception in Visual Studio
{
cout << "can't do that" << endl;
}
// Some pointer math (start HEX with AAAAAAAA)
cout << g << endl; // 17.
cout << b << endl; // 18.
cout << c << endl; // 19.
c++;
cout << c << endl; // 20.
}
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started