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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Отсортировать массив по убыванию и найти в нем элемент, равный X http://www.cyberforum.ru/cpp-beginners/thread1494390.html
Помогите пожалуйста написать программу, которая сортирует массив ПО УБЫВАНИЮ и ищет в нем элемент, равный X (это число вводится с клавиатуры). Использовать двоичный поиск.
C++ Конветирование строки char в time_t или в struct tm Есть строковые переменные типа char над которыми нужно производить вычисления (сравнение, получение разницы). Порыл сеть на предмет как это делать, - в принципе понятно, но все преобразования производятся на переменными типа time_t или struct tm, а у меня типа char вида "YYYY-MM-DD". Как преобразовать то, что есть у меня к типу time_t или к структуре tm??? http://www.cyberforum.ru/cpp-beginners/thread1494382.html
Выделить в другой массив все числа, которые встречаются более одного раза в исходном C++
Всем привет.Помогите пожалуйста,очень надо,выручите,буду очень благодарен. Заполнить массив случайными числами и выделить в другой массив все числа, которые встречаются более одного раза. Пример: Исходный массив: 4 1 2 1 11 2 34 Результат: 1 2
C++ Перегрузка оператора запись в поток
Здравствуйте! Подскажите, пожалуйста, возможно ли так реализовать: #include <fstream> class ClassA { public: bool Initialize(); void Shutdown(); void Write(char*);
C++ Как записать выражение, чтобы не отбрасывалась дробная часть? http://www.cyberforum.ru/cpp-beginners/thread1494356.html
Здравствуйте.Есть такой код: double s = 14.5; int m = 4; double b=s/m При вычислении выражения отбрасывается дробная часть. Знаю, что при делении на конкретное число, можно записать b = s/4.0. А как быть когда в выражении только переменные?
C++ Вывести массив в обратном порядке Задание в том чтоб ввести массив который оканчивается на 0, и выводило массив в обратном порядке но без 0. #include <iostream> using namespace std; void func() { int number; подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
07.07.2015, 22:41     Ошибки в коде с вложеными классами: Невозможно обратиться к private члену
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include <iostream>
using namespace std;
 
#include <afxwin.h>
 
#define IDD_One 1
#define IDD_Two 2
#define IDD_IUnknown_my 3
 
struct IUnknown_my{
    virtual BOOL QueryInterfece(int InId,void** pObj)=0;
};
 
struct IOne : IUnknown_my{
    virtual int& fOne()=0;
};
 
struct ITwo : IUnknown_my{
    virtual int& fTwo()=0;
};
 
class CObject_my
{
protected:
    int m_value1;
    int m_value2;
 
    class XOne : public IOne
    {
        CObject_my * pThis;
    public:
        XOne(void * ptr = 0){
            pThis = reinterpret_cast<CObject_my *>(ptr);
        }
        virtual int& fOne();
        virtual BOOL QueryInterfece(int InId,void** pObj);
    }m_xOne;
 
    class XTwo : public ITwo
    {
        CObject_my * pThis;
    public:
        XTwo(void * ptr = 0){
            pThis = reinterpret_cast<CObject_my *>(ptr);
        
        }
        virtual int& fTwo();
        virtual BOOL QueryInterfece(int InId,void** pObj);
    }m_xTwo;
public:
    CObject_my() : m_value1(0), m_value2(0), m_xOne(this), m_xTwo(this) {}
    virtual BOOL QueryInterfece(int InId,void** pObj);
 
};
 
int& CObject_my::XOne::fOne()
{
    return pThis->m_value1;
}
 
int& CObject_my::XTwo::fTwo()
{
    return pThis->m_value2;
}
 
BOOL CObject_my::QueryInterfece(int InId,void** pObj){
    BOOL bRet = FALSE;
    switch(InId)
    {
        case IDD_One:
            *pObj = &this->m_xOne;
            bRet  = TRUE;
            break;
        case IDD_Two:
            *pObj = &this->m_xTwo;
            bRet  = TRUE;
            break;
    }
    return bRet;
}
 
BOOL CObject_my::XOne::QueryInterfece(int InId,void** pObj)
{
    BOOL bRet = FALSE;
    if( pThis )
    {
        switch(InId)
        {
        case IDD_IUnknown_my:
            *pObj= &pThis;
            break;
        case IDD_Two:
            *pObj= &pThis->m_xTwo;
            bRet = TRUE;
            break;
        }
    }
    return bRet;
}
 
BOOL CObject_my::XTwo::QueryInterfece(int InId,void** pObj)
{
    BOOL bRet = FALSE;
    if( pThis )
    {
        switch(InId)
        {
        case IDD_IUnknown_my:
            *pObj= &pThis;
            break;
        case IDD_One:
            *pObj= &pThis->m_xOne;
            bRet = TRUE;
            break;
        }
    }
    return bRet;
}
 
int main()
{
    IOne* pOne = 0;//интерфейс 1
    ITwo* pTwo = 0;//интерфейс 2 
 
    //получаем первый интерфейс
    CObject_my* ptr=new CObject_my();
    ptr->QueryInterfece(IDD_One,(void**)&pOne);
    cout <<"pOne-fOne()= "<<pOne->fOne()<<"\r\n";
    pOne->fOne();
    cout <<"pOne-fOne()= "<<pOne->fOne()<<"\r\n";
    
    //из первого получаем второй интерфейс
    ptr->QueryInterfece(IDD_Two,(void**)&pTwo);
    cout <<"pTwo-fTwo()= "<<pTwo->fTwo()<<"\r\n";
    pTwo->fTwo()=100;
    cout <<"pTwo-fTwo()= "<<pTwo->fTwo()<<"\r\n";
    system("pause");
    return 0;
}
Миниатюры
Ошибки в коде с вложеными классами: Невозможно обратиться к private члену  
 
Текущее время: 13:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru