[С++] вызвать "соседний" конструктор? как юзать шаблоны?
так и в чем, соб-сно, проблема?
Препроцессор на шаблоны не глядит.
1) Нет. Для таких целей я обычно делаю функцию init, которую и вызываю из разных конструкторов с разными параметрами. Правда можно написать: this = YourClass( blablabla ); , но это бэд.
class A
{
private int b;
public A:this(0)
{
}
public A(int a)
{
b=a;
}
};
ну все сказал
Хех... Жаль. Это было бы, согласитесь, удобно...
Спасибо всем, тред, думаю, имеет смысл закрыть.
Почему бы тебе не создать обычный метод и не вызывать его из конструктора?
Да, коряво. Но С++ за годы его развития уже столько корявостей накопилось, что ничё страшного.
class A
{
int b;
public:
A (int a = 0)
{
b = a;
}
};
А почему бы тебе не прочитывать весь тред до ответа на вопрос?
Да, в общем, так и придётся сделать. Просто можно пойти 2-мя корявыми путями: либо дублировать код, либо создавать дополнительные функции. Согласитесь, излишнее загромождение программы.
Это плохо: происходит передача параметра даже если этого и не нужно. А если это критичный к скорости класс? И даже такой пустяк может сильно затормозить работу. Да и не всегда можно так сделать.
Хм... А вот об этом, я не подумал. СПАСИБО!
Оставить комментарий
VGordeev
Народ, есть пара вопросов. Плз, помогите разобраться.1. Есть класс, в нём 2 конструктора - один по умолчанию и другой, уоторый принимает некоторые параметры. Существует ли аналог вызова this(параметры) в С++?
2. Есть в отдельном .h'нике описание template класса. Так вот, как можно из основной программы скармливать данному классу другие классы, которые описаны тоже в отдельных .h'никах?
И не надо мне советовать править свою ДНК - не помогает, пробовал.