Коллеги, подскажите пожалуйста что означает в C++ запись
Gamma (double aa, double bb) : a(aa), b(bb)
в следующем куске кода
struct Gamma : Beta {
double a,b;
Gamma (double aa, double bb) : a(aa), b(bb) {
// do something
}
}
подозреваю, что ": a(aa), b(bb)"
тупо инициализирует при вызове консруктора локальную переменную "а" значением агрумента "аа"
и, соответственно "b" — значением "bb".
То есть, если б это был c# то надо было бы писать:
class Gamma : Beta {
double a,b;
public void Gamma (double aa, double bb) {
a = aa;
b = bb;
}
}
Вопрос: правильно ли я понял, или ": a(aa), b(bb) " означает что-то другое?
MP>подозреваю, что ": a(aa), b(bb)"
MP>тупо инициализирует при вызове консруктора локальную переменную "а" значением агрумента "аа"
MP>и, соответственно "b" — значением "bb".
да, правильно. это наз. "initialization lists".
более подробно можете изучить их, к примеру,
здесь.