#ifndef ABS_H_
#define ABS_H_
#include<iostream>
using namespace std;
// abstrakcyjna klasa bazowa
class mainDMA
{
private:
char * label;
public:
mainDMA();
mainDMA(char * s1);
virtual ~mainDMA();
virtual void View() const = 0;
};
// klasa pochodna
class baseDMA public : mainDMA
{
private:
int rating;
public:
baseDMA();
baseDMA(char * s1, int x);
virtual void View() const;
};
// klasa pochodna
/*class lacksDMA
public:mainDMA
{
private:
char color[40];
public:
lacksDMA();
lacksDMA(char *s1, char * c);
virtual void View() const;
};
// klasa pochodna
class hasDMA
public:mainDMA
{
private:
char * style;
public:
hasDMA();
hasDMA(char * s1, char * s2);
~hasDMA();
virtual void View() const;
};*/
#endif // !ABS_H_
#pragma once
#include <iostream>
#include "abs.h"
using namespace std;
mainDMA::mainDMA()
{
label = nullptr;
}
mainDMA::mainDMA(char * s1)
{
label = new char[strlen(s1) + 1];
strcpy_s(label, strlen(s1) + 1, s1);
}
mainDMA::~mainDMA()
{
delete[] label;
}
void mainDMA::View() const
{
cout << label << ednl;
}
Elo no wiec mam taki problem:
W momencie gdy próbuje utworzyć konstruktor klasy pochodnej np:
baseDMA::baseDMA(char * s1, int x)
:mainDMA(s1)
{
rating = x;
}
no to zmienna rating nie jest widziana przez moje IDE(Visual c++), a w nagłówku w klasie pochodnej definicja jest podkreślana na czerwono między innym public, private inne jak najeżdżam kursorem pokazuje komunikat expected an identifier, a jak najade na virtual invalid specifier outside a class declaration.
Jak temu zaradzić ?
Dzieki z góry