Whoopee, не работающий в этой библиотеке сокетов на данный момент. Я пытаюсь обучить себя немного больше на С++.
С классами, есть ли способ сделать переменную доступной только для чтения публике, но читать + писать при доступе в частном порядке? например что-то вроде этого:
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 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()
...
EDIT: Я забыл упомянуть, что планирую возвращать большой векторный экземпляр, используя функцию getX(), только сделает копию этого, и это не совсем оптимально. Я мог бы вернуть указатель на него, но эта плохая практика iirc.
P.S.: Где бы я опубликовал, если я просто хочу в основном показать свои знания указателей и спросить, завершено ли это или нет? Спасибо!