Предоставляется конструктор копирования вне зависимости от того, определяете ли вы какие-либо другие конструкторы или нет. Если вы не объявляете конструктор копирования, вы получаете его.
Конструктор без аргументов предоставляется только в том случае, если вы не объявляете конструкторы. Таким образом, у вас нет проблем, если вы не хотите иметь конструктор без аргументов, но считайте, что его написание - пустая трата времени.
IIRC, C ++ 0x имеет способ делегирования конструкции другому конструктору. Я не могу вспомнить детали, но это позволило бы вам определить конструктор без аргументов, указав другой конструктор плюс аргумент (ы) для передачи ему. В некоторых случаях можно сохранить ввод некоторых инициализаторов элементов данных. Но конструктор по умолчанию без аргументов также не предоставил бы эти инициализаторы.