Если хочется передавать собственную структуру, то, однозначно, лучше.
Особенно, если планируется это использовать в сигнал-слот взаимодействии.
void someFunc (const MyClass &myClass);
Связать signal(const MyClass &myClass) можно с slot(const MyClass &myClass) или с slot(MyClass myClass) любым способом,
а вот signal(MyClass &myClass) только с slot(MyClass &myClass) и, по моему, только Qt::DirectConnection.
Если передавать через "голый" указатель, то необходимо следить за корректным удалением данных.
Если хочется все-таки использовать указатель, тогда уж "умный", например, QSharedPointer.
Передача структуры через "умный" указатель м.б. полезна при многопоточном программировании.
Цитата
В первом случае через указатель, во втором по ссылке. Хватит и ссылки, и даже без "const".
Ссылка без "const", если данные не изменяются внутри вызываемого метода, мягко сказать не культурно или небрежно.
Нужно также учесть, что в Qt обращение к не константным методам контейнеров, и всем классам Qt, использующим внутри QSharedData, могут быть связаны с полным копированием внутренних данных.