Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
eternalenvy
0 / 0 / 1
Регистрация: 01.07.2014
Сообщений: 30
1

Нет доступа к функции

16.06.2016, 20:35. Просмотров 269. Ответов 2
Метки нет (Все метки)

Есть 2 заголовочных файла .h и главный .cpp. В Employee.h есть функция, которую нельзя вызвать - error C2247: нет доступа к "Employee::averageFixedSalary", поскольку "FixedEmployee" использует "private" для наследования из "Employee". FixedEmploee.h содержит только конструктор. В чем ошибка?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Employee.h
 
#ifndef EMPLOYEE_H_INCLUDED
#define EMPLOYEE_H_INCLUDED
 
 
class Employee {
public:
    virtual double averageFixedSalary(double value) { // эта функция
        return value;
    }
};
 
 
 
#endif // !EMPLOYEE_H_INCLUDED
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// FixedEmployee.h
 
#ifndef FIXEDEMPLOYEE_H_INCLUDED
#define FIXEDEMPLOYEE_H_INCLUDED
 
#include <string>
#include "Employee.h"
 
class FixedEmployee : Employee {
public:
    FixedEmployee(int __id, std::string __name, int __salary) { 
        this->id = __id;
        this->name = __name;
        this->salary = __salary;
    }
 
 
private:
    int id;
    int salary;
    std::string name;
};
 
#endif // !FIXEDEMPLOYEE_H_INCLUDED
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// main.cpp
 
#include <iostream>
#include <conio.h>
#include "FixedEmployee.h"
 
 
int main(int argc, char *argv []) {
    FixedEmployee first(1, "name", 100);
    std::cout << first.averageFixedSalary(100); //  error C2247: нет доступа к "Employee::averageFixedSalary", поскольку "FixedEmployee" использует "private" для наследования из "Employee"
 
    _getch();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2016, 20:35
Ответы с готовыми решениями:

Нет доступа к переменным из функции
Функция move не знает, что такое переменные i2,j2,i,j,m,n,a. Хот я все объявлены в главной...

У дружественной функции нет доступа к приватному поля класса
Доброго времени суток. Определены два класса: First и Second. В классе First определена составная...

Нет доступа к файлу
Всем здравствуйте. Вот какая проблема: имеется txt файл, в нем записан 0. После выполнения...

Нет доступа к элементу
vector.c:57:22: error: incompatible types when assigning to type ‘char’ from type ‘char *’ ...

Нет доступа до вектора класса
Здравствуйте, нужно записать в переменную текст и вектора класса. void...

2
afront
1064 / 1009 / 754
Регистрация: 29.02.2016
Сообщений: 3,200
16.06.2016, 21:18 2
'first' : undeclared identifier
0
eternalenvy
0 / 0 / 1
Регистрация: 01.07.2014
Сообщений: 30
16.06.2016, 21:25  [ТС] 3
Решил проблему, заменив class FixedEmployee : Employee { ... } на class FixedEmployee : public Employee { ... } . Вдруг кто-нибудь тоже встретится с этим.

Из литературы: По-умолчанию поля супер-класса(родителя) наследуются с модификатором видимости private.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.06.2016, 21:25

Нет доступа к инициализованному полю
Собственно проблема в следующем: в программе генерируются точки с случайно заданными координатами,...

Нет доступа к полю private
Всем доброго дня ! Полскажите пожалуйста почему обьект nak не может получить доступ к функции...

Нет доступа к ячейке памяти?!
День всем добрый. Я понимаю, неприлично как-то по пять раз на день форумчан беспокоить, но тут...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru