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

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

14.07.2012, 17:39. Показов 1174. Ответов 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 - компилируется.
Не понимаю, почему так происходит...
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.07.2012, 17:39
Ответы с готовыми решениями:

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

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

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

3
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
14.07.2012, 18:34
Цитата Сообщение от Dreammmer Посмотреть сообщение
const B * newB
C++
1
B* const newB
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
14.07.2012, 19:04
C++
1
const B *itsB;
Добавлено через 17 минут
И сначала объявлять класс B, а потом уж А.
0
Dreammmer
14.07.2012, 20:27
Цитата Сообщение от soon Посмотреть сообщение
C++
1
B* const newB
Собственно вопрос в том почему нельзя так писать, как я написал.
Не спорю, если написать как предложили Вы, то всё хорошо, но в таком случае получается не указатель не на констатну, что может быть черевато её изменением.
Сам разобрался, указатель тогда и объявить в классе надо указатель на констатну.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.07.2012, 20:27
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru