Я только делал пример, используя private :, я не хочу private, поскольку он блокирует весь доступ. Я хочу, чтобы он действовал как const публично, но не const локально.
возьми, на данный момент не работаю с этой библиотекой сокетов. Я пытаюсь обучить себя немного больше в 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;
не допускается? как переменная const, но доступная для записи изf()
...
РЕДАКТИРОВАТЬ: я забыл упомянуть, что я планирую возвращать большой экземпляр вектора, используя функцию getX () только сделать копию этого, и это не совсем оптимально. Я мог бы вернуть указатель на него, но это плохая практика iirc.
П.С .: Куда я отправлю сообщение, если я просто хочу показать свои знания указателей и спросить, завершено ли это или нет? Спасибо!