Мне нужно получить доступ к закрытым членам локального объекта из функции-члена. Пример объясняет это лучше, я думаю. Есть ли способ сделать это, не делая *a общедоступным или не предоставляя функцию специально для назначения *a ? Эта функция operator+ может несколько раз выделять и/или освобождать *a для локального объекта.
Это post, кажется, предполагает, что это должно работать.
// object.h
class object {
char *a;
...
}
// object.cpp
object object::operator+(object const &rhs) const {
int amount = ...
object local();
// this is ok
this->a = new char[amount];
// this is ok too
rhs.a = new char[amount];
// this is not
local.a = new char[amount];
....
}
Моя ошибка компиляции (g++ 4.6.3):
error: request for member ‘a’ in ‘local’, which is of non-class type ‘object()’