Assembly Language for Beginners

(Jeff_L) #1

3.18. C++


return 0;
};


Let’s run:


this is box. color=1, width=10, height=20, depth=30
this is box. color=1, width=123, height=20, depth=30


We see that the encapsulation is just protection of class fields only in the compilation stage.


The C++ compiler is not allowing the generation of code that modifies protected fields straightforwardly,
nevertheless, it is possible with the help ofdirty hacks.


Multiple inheritance


Multiple inheritance is creating a class which inherits fields and methods from two or more classes.


Let’s write a simple example again:


#include <stdio.h>


class box
{
public:
int width, height, depth;
box() { };
box(int width, int height, int depth)
{
this->width=width;
this->height=height;
this->depth=depth;
};
void dump()
{
printf ("this is box. width=%d, height=%d, depth=%d\n", width, height, depth);
};
int get_volume()
{
return width height depth;
};
};


class solid_object
{
public:
int density;
solid_object() { };
solid_object(int density)
{
this->density=density;
};
int get_density()
{
return density;
};
void dump()
{
printf ("this is solid_object. density=%d\n", density);
};
};


class solid_box: box, solid_object
{
public:
solid_box (int width, int height, int depth, int density)
{
this->width=width;
this->height=height;
this->depth=depth;

Free download pdf