Как получить доступ к приватным свойствам базового класса из , наследуемого класса.
Мне надо перееопределить базовый конструктор с параметрами в наследуемом классе, но дело в том, что базовый конструктор не принимает в качестве параметров приватные свойтва.
Базовый класс :
#ifndef STROKA_H_INCLUDED
#define STROKA_H_INCLUDED
class Stroka
{
private:
char *p_char; // Указатель на строку
unsigned int size; // Длина строки
public:
/* Конструктор без параметров */
Stroka()
{
size = 1;
p_char = new char[size];
*p_char = '\0';
std::cout << "КОНСТРУКТОР БЕЗ ПАРАМЕТРОВ" << std::endl;
}
/* Конструктор с параметрами */
virtual Stroka(const char *st, size_ = 0, p_char_ = NULL)
{
size = size_= strlen(st);
p_char = p_char_ = new char[size];
strcpy(p_char, st);
std::cout << "КОНСТРУКТОР С ПАРАМЕТРАМИ" << std::endl;
}
/* Конструктор с параметрами*/
Stroka(const char ch)
{
size = 2;
p_char = new char[size];
p_char[0] = ch;
p_char[1] = '\0';
std::cout << "КОНСТРУКТОР С ПАРАМЕТРАМИ КОТОРЫЙ ПРИНИМАЕТ СИМВОЛ" << std::endl;
}
/* Конструктор копирования */
Stroka(const Stroka &st)
{
size = strlen(st.p_char);
p_char = new char[size];
strcpy(p_char, st.p_char);
std::cout << "КОНСТРУКТОР КОПИРОВАНИЯ" << std::endl;
}
/* Вывод строки на экран */
void Print()
{
std::cout << "ОТЛАДОЧНАЯ ПЕЧАТЬ\n" << p_char << std::endl;
}
/* Перегрузка присваивания */
Stroka operator=(const Stroka &st)
{
std::cout << "ПЕРЕГРУЗКА ОПЕРАЦИИ" << std::endl;
delete [] p_char;
p_char = new char[st.size];
strcpy(p_char, st.p_char);
return *this;
}
/* Длина строки */
unsigned int Size()
{
return strlen(p_char);
}
/* Деструктор */
~Stroka()
{
delete [] p_char;
std::cout << "ДЕСТРУКТОР" << std::endl;
}
};
#endif // STROKA_H_INCLUDED
Наследуемый класс:
#ifndef STR_INDEF_H_INCLUDED
#define STR_INDEF_H_INCLUDED
class Str_Indef: public Stroka
{
public:
Str_Indef():Stroka(){}
Str_Indef(const char *st):Stroka(st)
{
size = strlen(st);
p_char = new char[size];
strcpy(p_char, st);
std::cout << "КОНСТРУКТОР С ПАРАМЕТРАМИ" << std::endl;
}
Str_Indef(const char ch):Stroka(ch){}
};
#endif // STR_INDEF_H_INCLUDED