Конструктор копирования предусмотрен ли вы определить какие-либо другие конструкторы или нет. Пока вы не объявляете конструктор копии, вы получаете его.
Конструктор no-arg предоставляется только в том случае, если вы не объявляете никаких конструкторов. Таким образом, у вас нет проблемы, если вы не хотите конструктора no-arg, но считаете это пустой тратой времени на запись.
IIRC, C++ 0x имеет способ делегирования конструкции другому конструктору. Я не могу вспомнить детали, но это позволит вам определить конструктор no-arg, указав другой конструктор, плюс аргумент (ы), чтобы перейти к нему. В некоторых случаях можно сохранить ввод некоторых инициализаторов элементов данных. Но конструктор no-arg по умолчанию также не предоставил бы эти инициализаторы.
Непонятный вопрос. этот тривиальный класс 'class MyClass {public: int i;};' имеет значение по умолчанию ctor, copy ctor и dtor. –
@Binary Worrier: «даже если я предоставляю явный конструктор». Если вы предоставили 'MyClass' конструктор' int', тогда у него больше не будет конструктора no-arg по умолчанию. –
Это правда, я был далеко от C++ для * far * слишком долго. Извиняюсь. –