Код: Выделить всё
struct Foo {
int bar;
Foo() : bar(0) {}
};
class Container {
Foo* foo;
public:
void put(const Foo* in_foo) {
foo = in_foo;
}
Foo* get() {
return foo;
}
};
int main()
{
Foo foo;
Container c;
c.put(&foo);
Foo* pFoo = c.get();
pFoo->bar = 3;
}
main.cpp: В функции-члене 'void Container:: put(const Foo*)':
main.cpp:20:19: ошибка: недопустимое преобразование из 'const Foo*' в 'Foo*'
[-fpermissive]
См. https://onlinegdb.com/2SrlyGdQY.
Я хочу «пообещать», что не буду связываться с Фу при помещении в мой контейнер, но не заставлять Foo быть константой, когда пользователь возвращает его. Как лучше всего с этим справиться?
Подробнее здесь: https://stackoverflow.com/questions/790 ... -non-const
Мобильная версия