Это зависит от вашей семантики, но я не думаю, что использовал бы функции, которые у вас есть здесь. Вместо этого вот два варианта, которые я бы рассмотрел:
Если вы хотите, чтобы от A до была эта переменная подсчета, вам, вероятно, следует сохранить const
-ness при доступе к ней. В этом случае вы можете написать свои функции следующим образом:
void GetCount(const int** ppCount) const
{
*ppCount = m_pCount;
}
void GetCount(int** ppCount) // note - omitted const
{
*ppCount = m_pCount;
}
Это означает, что если у вас есть не const
A
, вы можете получить неконстантный счетчик, но если у вас естьconst
A
вы можете получить только счетчик const
.
Вы также можете иметь в виду, что A просто наблюдает некоторую переменную count. В этом контексте наблюдатель const
означает, что вы не будете менять то, на что указываете, но сама эта вещь может измениться. В этом случае вы могли бы написать свой аксессор следующим образом:
void GetCount(int** ppCount) const
{
*ppCount = m_pCount;
}
В общем, я бы сказал, что предпочел бы первый метод и сохранить const
-ность, но другой способ, безусловно, действителен вопределенные обстоятельства.