Код:
#include <iostream>
#include <conio.h>
using namespace std;
#include <stdio.h>
#define StringSize 50
class BaseReservoir
{
char cName[StringSize];
float fVolume;
public:
BaseReservoir( void );
BaseReservoir( char cN[StringSize], float fV )
{
int iIndex;
for( iIndex = 0; cN[iIndex] != 0; iIndex++ )
cName[iIndex] = cN[iIndex];
cName[iIndex] = 0;
fVolume = fV;
};
~BaseReservoir(){};
void Scan( BaseReservoir a )
{
printf( "Enter the reservoir name\n" );
gets( a.cName );
printf( "Enter reservoir volume\n" );
scanf( "%f", a.fVolume );
}
virtual void Print( BaseReservoir a )
{
printf( "Reservoir name: %s", cName );
printf( "Reservoir volume: %f", fVolume );
}
};
class NaturalReservoir: public BaseReservoir
{
int iPercentOfCleanliness;
public:
NaturalReservoir( int iP ): BaseReservoir()// char cN[StringSize], float fV )
{
iPercentOfCleanliness = iP;
};
~NaturalReservoir(){};
void Print( BaseReservoir a )
{
BaseReservoir::Print();
printf( "Percent of cleanliness of a reservoir: %d%%", iPercentOfCleanliness );
}
};
class ArtificialReservoir: public BaseReservoir
{
char cDate[StringSize];
public:
ArtificialReservoir( char cD[StringSize] ): BaseReservoir()// char cN[StringSize], float fV )
{
int iIndex;
for( iIndex = 0; cD[iIndex] != 0; iIndex++ )
cDate[iIndex] = cD[iIndex];
};
~ArtificialReservoir(){};
void Print( ArtificialReservoir a )
{
BaseReservoir::Print();
printf( "Date of creation of a reservoir: %s", cDate );
}
};
вот есть заголовочный файл с классами
в маине обращаюсь так
Код:
#include "Reservoirs.h"
#include <stdio.h>
#include <conio.h>
void main()
{
BaseReservoir a( "O\0" , 123 );
a.Scan( a );
a.Print( a );
NaturalReservoir b( 40 );
b.Print( b );
ArtificialReservoir c( "12.12.2012" );
c.Print( c );
_getch();
}
Но чего-то ошибок много вообще не пойму