Итак, у меня есть этот кусок кода, и из удобства я хочу, чтобы параметр по умолчанию для его конструктора имел тип int и 0. (У меня есть больше параметров в классе моего проекта и один из них не является обязательным, и я не хочу, чтобы написать конструктор дважды из-за его большой)Параметры шаблона по умолчанию в конструкторе
class mama{
public:
template<typename x> mama(x i=int(0)){}
};
int main(){
mama x;
}
Это не работает, потому что он говорит, что не может найти конструктор так есть еще один способ, которым я могу это сделать?
error: no matching function for call to ‘mama::mama()'
note: candidates are: mama::mama(const mama&)
Мы закончили тем же кодом. аккуратный :) –
Тот факт, что ваш шаблон templated является сильным намеком для меня, чтобы templatize весь класс. YMMV! – dirkgently
Возможно; Я не могу себе представить, как шаблонный конструктор, подобный этому, был бы полезен без шаблонизации класса, но это дает то, что задал исходный вопрос, а кто-то еще покрыл создание класса шаблоном :) – bdonlan