In order of effective priority :
0) IF members have dependencies between them on construction OR if members need to be constructed in a specific order : declare them in the order of construction you wish to be exectued. On construction, the only order of member construction is the member order of declaration in the class.
0.5) IF the class instance object size matters (you want the minimum size for this type - but dont do early optimization!), with some compilers it is better to order your members in size order, the bigger the first, for byte alignement or other similar behavior on compilation.
1) Prioritize CLARITY first : write for the reader first (be clear, order in thematic/purpose groups, etc), then for the compiler (maybe following the previous advices).
In almost all cases, only 1) is important. Prefer thematic, purpose and "composants of the same system" for grouping members over grouping by type.
Note : if you group your members by system and you see you have lot of groups, maybe you should encapsulate those systems in classes.