Я только что начал изучать C++ за последние несколько месяцев, и я так много не подвергался. Я пробовал искать этот синтаксис, но безуспешно. Это упражнение на programr.com, которое касается классов и перегрузки операторов. Вот код:Может кто-нибудь объяснить мне этот код C++?
class temp
{
int value;
public:
temp(int v=0) : value(v) { }
Я понимаю, что это объявить класс под названием «Темп», с «значением» частной переменной члена. Я предполагаю, что код под «public» объявляет конструктор по умолчанию. Я привык видеть конструкторами по умолчанию, объявленные в синтаксисе функции:
temp (int v=0){
value = v;
some expressions;
}
Часть я запутался о том, после двоеточия:
: value(v) {}
Что такое функция толстой кишки там, точно? Какова связь между конструктором по умолчанию и значением (v) {} "? Является ли это просто другим синтаксисом конструктора по умолчанию для конструктора по умолчанию? Я привел пример выше? Спасибо за помощь в этом полном n00b!
также см. Ответы на http://stackoverflow.com/questions/4589237/c-initialization-lists –
Он называется списком инициализации - он позволяет вызывать конструкторы объектов-членов перед выполнением команд в скобках. В примитивах C++ также есть конструкторы - они просто инициируют переменную с любым значением, которое вы передаете внутри. –
Спасибо, что предоставили терминологию «список инициализации». Теперь, когда я это знаю, я вижу это в главе 10 раздела 1. Я все еще на седьмой главе 9! Спасибо огромное! – Huaidan