Позвольте мне привести более подробный пример. Что касается ниже структуры:
struct Count{
uint32_t c;
Count(uint32_t i=0):c(i){}
uint32_t getCount(){
return c;
}
uint32_t add(const Count& count){
uint32_t total = c + count.getCount();
return total;
}
};
Как вы видите выше, IDE (CLion) даст подсказки Non-const function 'getCount' is called on the const object
. В методе add
count
объявлен как объект const, но метод getCount
не является методом const, поэтому count.getCount()
может изменять члены в count
.
Ошибка компиляции, как показано ниже (основное сообщение в моем компиляторе):
error: passing 'const xy_stl::Count' as 'this' argument discards qualifiers [-fpermissive]
Чтобы решить эту проблему, вы можете:
uint32_t getCount(){...}
на uint32_t getCount() const {...}
. Таким образом, count.getCount()
не будет изменять элементы в count
. или
uint32_t add(const Count& count){...}
на uint32_t add(Count& count){...}
. Поэтому count
не заботится об изменении членов в нем. Что касается вас, объекты в std :: set сохраняются как const StudentT, но метод getId
и getName
не const, поэтому вы указываете вышеприведенную ошибку.
Вы также можете увидеть этот вопрос Значение 'const' последним в объявлении функции класса? для более подробно.
Это сокращение от apache control (ler?). Он сообщает apache, что делать, но это не сама служба.
httpd
- практический демон. Это та часть, которая действительно выполняет свою работу. apachectl
- это то, как вы можете управлять этим демоном и выполнять с ним операции. Это просто интерфейс управления, а не сама настоящая программа.
Из справочной страницы:
apache2ctl - это интерфейс к серверу Apache HyperText Transfer Protocol (HTTP). Он разработан, чтобы помочь администратору контролировать работу демона Apache apache2.
(У меня на машине есть apache2, но это то же самое)
apachectl - HTTP-сервер Apache интерфейс управления
Похоже, это просто старое соглашение об именах.
Программа apachectl
помогает управлять демоном HTTPD Apache.
Сам двоичный файл сервера называется httpd
в восходящем дистрибутиве, но apache2
в других, таких как пакет debian.
apachectl
] или apache2ctl
(ctl означает c на t ro l ) - сценарий оболочки, который позволяет запускать / останавливать и т. д. группа процессов httpd
или apache2
.