Форум программистов, компьютерный форум CyberForum.ru

Невозможно обратиться к private -члену - C++

Восстановить пароль Регистрация
 
Вероника99
4 / 4 / 1
Регистрация: 16.12.2013
Сообщений: 413
24.09.2014, 14:55     Невозможно обратиться к private -члену #1
Подскажите пожалуйста,в чем проблема, из-за создания объекта компилятор выдает ошибку. Класс Base-абстрактный
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "stdafx.h"
#include <iostream>
#include <string>
 
using namespace std;
 
class Base
{
protected:
    int num;
    string name;
    double sal;
public:
    Base(int n,string nm,double sal);
    virtual double salary_for_hour(int )=0;
};
 
class worker_hour: public Base
{
    worker_hour(int n,string nm,double s):Base(n,nm,0)
    {
        num=n;
        name=nm;
        sal=s;
    }
    virtual double salary_for_hour(int h_1)
    {
        sal=20,8*8*h_1; //месячная зарплата почасовых работников 
        return sal;
    }
};
 
 
void main()
{
    Base *wrks[10];
    
    wrks[0]=new worker_hour(1,"Ivanov Ivan",0);
}
c:\documents and settings\дом\мои документы\visual studio 2010\projects\ss\ss\ss.cpp(49): error C2248: worker_hour::worker_hour: невозможно обратиться к private член, объявленному в классе "worker_hour"
c:\documents and settings\дом\мои документы\visual studio 2010\projects\ss\ss\ss.cpp(23): см. объявление "worker_hour::worker_hour"
c:\documents and settings\дом\мои документы\visual studio 2010\projects\ss\ss\ss.cpp(21): см. объявление "worker_hour"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
24.09.2014, 14:58     Невозможно обратиться к private -члену #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class worker_hour: public Base
{
public:
* * worker_hour(int n,string nm,double s):Base(n,nm,0)
* * {
* * * * num=n;
* * * * name=nm;
* * * * sal=s;
* * }
* * virtual double salary_for_hour(int h_1)
* * {
* * * * sal=20,8*8*h_1; //месячная зарплата почасовых работников 
* * * * return sal;
* * }
};
Вероника99
4 / 4 / 1
Регистрация: 16.12.2013
Сообщений: 413
24.09.2014, 15:08  [ТС]     Невозможно обратиться к private -члену #3
Мда,бывает и такое)Спасибо)
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
24.09.2014, 15:45     Невозможно обратиться к private -члену #4
Заодно уж
Цитата Сообщение от Вероника99 Посмотреть сообщение
sal=20,8
C++
1
20.8
Вероника99
4 / 4 / 1
Регистрация: 16.12.2013
Сообщений: 413
24.09.2014, 19:12  [ТС]     Невозможно обратиться к private -члену #5
Что-то я сегодня невнимательная,спасибо)
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
24.09.2014, 21:34     Невозможно обратиться к private -члену #6

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
Заодно уж
где-то я это недавно видел


Ещё бы хотелось добавить:
1. не стоит неконстантные данные пихать в protected, данные должны быть в private.
2. поля базового класса должен инициализировать конструктор базового же класса (а не производного).
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6176 / 2905 / 284
Регистрация: 04.12.2011
Сообщений: 7,730
Записей в блоге: 3
25.09.2014, 03:18     Невозможно обратиться к private -члену #7
Вероника99, ещё 5 копеек к почасовой оплате:
У Вас есть метод определения месячной оплаты по почасовой ставке. Зачем её (оплату) делать полем? Логика говорит, что у каждого работника своя почасовая и её бы надо. Кроме того, константа 20.8 заданная литералом в методе выглядит расслабляюще. Тут даже не в том дело, что в каждом месяце примерно 9.2 выходных дней. Это как раз неплохо. Даже не учитывая праздников.
Вероника99
4 / 4 / 1
Регистрация: 16.12.2013
Сообщений: 413
25.09.2014, 15:34  [ТС]     Невозможно обратиться к private -члену #8
IGPIGP ,да,есть такое,я делаю все в точности по заданию,так что это не я такая,это они такие)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2014, 22:09     Невозможно обратиться к private -члену
Еще ссылки по теме:

C++ Не могу обратиться к Privat члену класса из ф-и Friend. Почему?
C++ Как обратиться к члену класса
Ошибки в коде с вложеными классами: Невозможно обратиться к private члену C++

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

Или воспользуйтесь поиском по форуму:
IGPIGP
25.09.2014, 22:09     Невозможно обратиться к private -члену
  #9

Не по теме:

Цитата Сообщение от Вероника99 Посмотреть сообщение
это они такие
Тогда пишите так, как они хотят и пусть они будут здоровы. Лучше с такими не спорить(имхо).

Yandex
Объявления
25.09.2014, 22:09     Невозможно обратиться к private -члену
Ответ Создать тему
Опции темы

Текущее время: 09:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru