Если вы пытаетесь переписать /list/findcontent.action?id=6
в /findcontent.action?id=6
, ваше утверждение rewrite
является неполным. Вам не хватает захвата.
Например:
rewrite ^/list(.*)$ $1 break;
Подробнее см. в этом документе .
Вы можете добиться аналогичной функции, используя только директивы location
и proxy_pass
.
Например:
location /list/ {
proxy_pass http://list.example.com:89/;
}
Обратите внимание на конечный /
для значений location
и proxy_pass
. Подробнее см. в этом документе .
Технически, единственная разница между этими двумя - то, что структуры общедоступны: по умолчанию и классы являются частными:
Кроме этого, нет никакого технического различия.
структура по сравнению с классом затем становится чисто выразительным нюансом языка.
Обычно, Вы стараетесь не помещать сложные методы в структуру, и большую часть времени элементы данных структур останутся общедоступными. В классе Вы хотите осуществить сильную инкапсуляцию.
структура = данные общедоступна с очень простыми вспомогательными методами
класс = сильно инкапсулировавший, данные изменяются / получил доступ только через методы
Я использую структуры для простых контейнеров типов, которые не предоставляют никаким конструкторам или операторам.
Классы для всего остального.
Используйте структуру при простой необходимости в "блоке материала", который не имеет логических инвариантов, которые необходимо сохранить. Используйте класс для чего-либо еще.
Видят также, что FAQ C++ говорит относительно предмета .
Используйте класс, если у Вас есть методы, структура если нет.
Класс должен скрыть все свои внутренности, только выставляющие методы или свойства. Структура имеет тенденцию выставлять все свои внутренности и не имеет никаких методов доступа.
Где только один бит кода получает доступ к некоторым (связанным) данным, структура может быть совершенно разумной. Где несколько битов кода должны изменить данные или если бы это - что-либо немного сложное, класс был бы лучшей ставкой.
Различие между Классами и Структурами - то, что структуры являются группами переменных, и классы представляют объекты. Объекты имеют атрибуты И методы и быть частью иерархии.
, Если Вы используете C++ для использования в своих интересах возможностей OO, лучше использовать классы / объекты, которые являются более естественными.
Я всегда использую класс, даже для просто контейнеров, для непротиворечивости. Просто выбор стиля, так как различие между этими двумя незначительно.
Посмотрите существующие вопросы:
, Каковы различия между структурой и классом в C++
, Когда необходимо использовать класс по сравнению со структурой в C++?
Если необходимо управлять доступ к данным, необходимо использовать классы. Если Вы не заботитесь, кто получает доступ к тому, что, и что они хранят там, то структура является, вероятно, более соответствующей.
кроме того, класс является более соответствующим, если необходимо сделать, любой проверяет целостность самих данных.
Лично, я использую структуры, когда все, в чем я нуждаюсь, является контейнером для данных (никакие функции членства). Иначе я использую классы.
единственное время я делаю исключение к тому правилу, то, если мне нужен простой функтор: например,
struct compare { bool operator() { ... } };
sort(v.begin(), v.end(), compare());
потребность в public:
маркировка просто загромоздила бы код unnecessarity.
структуры в C++ являются классами с методом доступа по умолчанию общественности, так технически кроме того значения по умолчанию нет никакого различия, и можно использовать обоих эквивалентно.
все же существуют некоторые ожидания и естественные стремления, частично потому что структуры в C++ прибывают из C.
Мой подход: Если это имеет какие-либо частные данные, конструктора/деструктор или какие-либо сложные функции членства (которые делают больше, чем просто преобразование на устанавливало/получало, и т.д.), используйте класс.