Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Dreammmer
1

Присвоение указателю члену класса нового адреса, ошибка компиляции

14.07.2012, 17:39. Просмотров 786. Ответов 3
Метки нет (Все метки)

Идея в том, чтобы хранить в отдельном списке объекты типа B и передавать в объект типа A указатель на объект B из списка.
Допустим есть следующий код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A
{
public:
    void  SetB(const B * newB){
        itsB = newB;}   //Ошибка
private:
 
    B *itsB;
}
 
class B
{
private:
      int X;
}
В таком случае появляется ошибка
error C2440: '=' : cannot convert from 'const B *' to 'B *'
Убираю const - компилируется.
Не понимаю, почему так происходит...
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.07.2012, 17:39
Ответы с готовыми решениями:

Присвоение указателю на базовый класс адреса производного класса
Когда наследую как public,всё норм,как private - ошибка. Как сделать тогда,чтобы открылся...

Присвоение адреса указателю, равному NULL
В конструкторе класса я присваиваю адрес переменной укзаателю,который равен был инициализирован...

Присвоение указателю адреса памяти, прописанного в стринге
Доброго времени суток! Есть переменная стринг, содержащая адрес памяти. Как присвоить указателю...

Ошибка компиляции (преобразование объекта класса в объект другого класса)
Друзья, добрый день! Не могу понять почему выдается ошибка компиляции... Прога преобразует...

3
2551 / 1316 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
14.07.2012, 18:34 2
Цитата Сообщение от Dreammmer Посмотреть сообщение
const B * newB
C++
1
B* const newB
0
5472 / 4867 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
14.07.2012, 19:04 3
C++
1
const B *itsB;
Добавлено через 17 минут
И сначала объявлять класс B, а потом уж А.
0
Dreammmer
14.07.2012, 20:27 4
Цитата Сообщение от soon Посмотреть сообщение
C++
1
B* const newB
Собственно вопрос в том почему нельзя так писать, как я написал.
Не спорю, если написать как предложили Вы, то всё хорошо, но в таком случае получается не указатель не на констатну, что может быть черевато её изменением.
Сам разобрался, указатель тогда и объявить в классе надо указатель на констатну.
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.07.2012, 20:27

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Присвоение значения указателю
Как можно, вот так, присваивать указателю значение? Разве, указатель не должен всегда содержать...

Присвоение по указателю на 32 и 64 битных машинах
Добрый день. Скомпилированная программа на 64-битной машине аварийно завершается....

Присвоение значения указателю на функцию
Есть укзатель на функцию. Есть перегруженная функция. как присвоить указателю нужный нам вариант...

Присвоение указателю на char значения int
доброе время суток уважаемые пользователи как можно присвоить int значение char *'у .int имеет...


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

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

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