It says in the reference manual that if you derive from MonoBehaviour we shoul use Start() instead of a constructor, but if we have to pass a parameter can we still use a constructor?
For all the reasons listed in the documentation, no, that wouldn’t be a good idea. Either lookup (fetch) the parameter data in Start(), or pass it in after construction (and code your behaviour to cope appropriately if the data hasn’t been passed in yet).