Ой, в данный момент не работаю с этой библиотекой сокетов. Я пытаюсь немного изучить C ++.
Есть ли способ сделать переменную общедоступной только для чтения, но для чтения и записи при частном доступе? например, примерно так:
class myClass {
private:
int x; // this could be any type, hypothetically
public:
void f() {
x = 10; // this is OK
}
}
int main() {
myClass temp;
// I want this, but with private: it's not allowed
cout << temp.x << endl;
// this is what I want:
// this to be allowed
temp.f(); // this sets x...
// this to be allowed
int myint = temp.x;
// this NOT to be allowed
temp.x = myint;
}
Мой вопрос, сокращенный, как разрешить полный доступ к x
изнутри f ()
, но доступ только для чтения из любого другого места, то есть int newint = temp.x;
разрешен, но temp.x = 5;
не допускается? как константная переменная, но с возможностью записи из f ()
...
РЕДАКТИРОВАТЬ: Я забыл упомянуть, что я планирую возвращать большой экземпляр вектора, использование функции getX () приведет только к копия этого, и это не совсем оптимально. Я мог бы вернуть указатель на него, но это плохая практика iirc.
PS: Где я буду писать, если я просто хочу в основном показать свои знания об указателях и спросить, полные они или нет? Спасибо!