Prin intermediul acestui obiect am accesat metoda printValue();
Apoi am declarat un obiect *box cu o durată de stocare dinamică(un pointer), ceea ce înseamnă că nu va fi distrus până când nu este utilizaț în mod explicit cuvantul cheie delete.
As vrea sa accesez motoda printValue() similar ca in primul caz, insa nu am reusit si nici nu stiu daca se poate.
Astept sugestii.
Code: Select all
#include<iostream>
using namespace std;
class BaseClass
{
private:
int x;
int y;
public:
BaseClass(int x, int y)
{
this->x = x;
this->y = y;
cout << "\n Called BaseClass() from BaseClass!" << endl;
}
virtual void myFunction()
{
cout << "\n Called myFunction() from BaseClass!" << endl;
}
int getX()
{
return x;
}
int getY()
{
return y;
}
};
class DerivedClass:public BaseClass
{
private:
int z;
public:
DerivedClass(int z, int x, int y):BaseClass(x, y)
{
this->z = z;
cout << "\n Called DerivedClass() from DerivedClass!" << endl;
}
void myFunction()
{
cout << "\n Called myFunction() from DerivedClass!" << endl;
}
void printValue(DerivedClass arr)
{
cout << "\n x = " << arr.getX() << endl;
cout << "\n y = " << arr.getY() << endl;
cout << "\n z = " << z << endl;
}
};
int main()
{
DerivedClass obj(300, 100, 200);
BaseClass *box = &obj;
box->myFunction();
obj.printValue(obj);
BaseClass *box = new DerivedClass(100, 200, 300);
box->myFunction();
return 0;
}