Я только делал пример, используя 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.

П.С .: Куда я отправлю сообщение, если я просто хочу показать свои знания указателей и спросить, завершено ли это или нет? Спасибо!

Ответы на вопрос(11)

Ваш ответ на вопрос