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

Получить доступ к private полю объекта - C++

Восстановить пароль Регистрация
 
FloraWinx
 Аватар для FloraWinx
4 / 4 / 1
Регистрация: 05.10.2013
Сообщений: 122
15.07.2014, 16:10     Получить доступ к private полю объекта #1
Возможно я не правильно поставил свой вопрос но вопрос в следующем. Там где реализация метода poly_calc ()
я пытаюсь через указатель на поле объекта stack <int> coeffs вызвать метод top() (стек) но почему то у меня не получается хотя и вызвал метод геттер. В чем может быть проблема? Заранее спасибо
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
#include <time.h>
#include <stack>
#include <math.h>
using namespace std;
 
class Polynomial {
private:
    int pow; // deg of polynom
    int x; // arg
    stack <int> coeffs;
public:
    stack <int> Polynomial::get_coeff();
    int Polynomial::get_pow();
    int Polynomial::get_arg();
    int Polynomial::poly_calc( Polynomial *pol);
    int Polynomial::poly_add();
    int Polynomial::poly_subtract();
    int Polynomial::poly_mult();
     Polynomial::Polynomial(int &pow , int &x , stack<int> st);
     ~Polynomial();
 
};
 
 
 
 
 
stack<int> Polynomial::get_coeff(){
return coeffs;
}
 
 
Polynomial::Polynomial(int &_pow , int &_x , stack <int> coeff){
    coeffs=coeff;
    pow=_pow;
    x=_x;
};
 
int Polynomial::get_pow(){
    return pow;
}
 
int Polynomial::get_arg(){
    return x;}
 
int Polynomial::poly_calc( Polynomial *polyc){
         int result;
        int a0 = polyc->get_coeff.top();
         polyc->get_coeff.pop();
         int tmp,n=0;
         double t_p;
 
         while( !polyc->get_coeff.empty()){
             tmp = polyc->get_coeff.top();
             polyc->get_coeff.pop();
 
             
             result = result + tmp*_Pow_int(polyc->get_arg,n);
          
              n++;
         }
         result= result+a0;
 
         return result;
    
}
 
 
 
int main(){
    srand(time(NULL));
    stack <int> st ;
    int pow,k;
    cout<<"Enter pow: \n";
    cin>>pow;
    
    while(pow!=0){
        k=rand()%25+10;
        st.push(k);
        pow--;
    }
 
   cout<<"Enter argument: \n";
   int arg;
   cin>>arg;
 
   Polynomial *polyc  = new Polynomial (pow,arg,st);
   int f = polyc->poly_calc(polyc);
   cout<<f<<endl;
 
   cin.get();
 
    return 0;}
Ошибки:
Ошибка 1 error C2228: выражение слева от ".top" должно представлять класс, структуру или объединение , строка 49.
int a0 = polyc->get_coeff.top();
и еще 3 похожих только те что дальше)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2014, 16:10     Получить доступ к private полю объекта
Посмотрите здесь:

C++ Доступ к private структуре класса
доступ к private членам класса C++
C++ доступ к private членам
Получить доступ к методу, который при наследовании стал private C++
Как получить доступ к приватному полю C++
Доступ к закрытому полю C++
Потоки, static. Доступ к полю класса из другого потока C++
C++ Нет доступа к полю private

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ShadowFirst
54 / 47 / 1
Регистрация: 31.10.2013
Сообщений: 161
15.07.2014, 16:21     Получить доступ к private полю объекта #2
polyc->get_coeff.top();

Ты скобочки пропустил как никак get_coeff у тебя функция а не переменная
C++
1
polyc->get_coeff().top();
FloraWinx
 Аватар для FloraWinx
4 / 4 / 1
Регистрация: 05.10.2013
Сообщений: 122
15.07.2014, 16:24  [ТС]     Получить доступ к private полю объекта #3
спасибо)
Yandex
Объявления
15.07.2014, 16:24     Получить доступ к private полю объекта
Ответ Создать тему
Опции темы

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