Soy un programador de C++ bastante nuevo y me gustaría escuchar los argumentos a favor y en contra de los parámetros de nomenclatura dentro de la declaración de clase.C++ Style Convention: nombres de parámetros dentro de la declaración de clase
He aquí un ejemplo:
Student.h
#ifndef STUDENT_H_
#define STUDENT_H_
#include <string>
using namespace std;
class Student
{
private:
string name;
unsigned int age;
float height, GPA;
public:
Student(string, unsigned int, float, float);
void setAge(unsigned int);
};
#endif /*STUDENT_H_*/
vs
#ifndef STUDENT_H_
#define STUDENT_H_
#include <string>
class Student
{
private:
string name;
unsigned int age;
float height, GPA;
public:
Student(string name, unsigned int age, float height, float GPA);
void setAge(unsigned int age);
};
#endif /*STUDENT_H_*/
Student.cpp
#include "Student.h"
Student::Student( string name,
unsigned int age,
float height,
float GPA) :
name(name),
age(age),
height(height),
GPA(GPA) {}
void Student::setAge(unsigned int age) { this -> age = age; }
No puedo decidir. Por un lado, creo que es redundante nombrar las variables tanto en la declaración (.h) como en la definición (.cpp). Especialmente porque tiene que preocuparse de actualizar los nombres en ambos lugares para que coincidan. Por otro lado, sin nombres, a menudo puede ser confuso determinar a qué variables corresponden los parámetros simplemente mirando la declaración.
Entonces, ¿qué piensas?
simplemente use 'int' y' double', no 'unsigned int' y' float'. En el caso de 'unsigned int', quizás intente documentar una restricción de valor, pero en lugar de aplicar C++, proporciona una gran cantidad de trampas, es decir, sin ganancia, pero con mucho dolor innecesario. Por lo general, solo use tipos sin signo cuando trabaje con el nivel de bit, o cuando lo fuercen las funciones de la biblioteca. En el caso de 'float' quizás esté intentando guardar memoria. Eso está mal orientado a menos que tenga miles de millones de estudiantes. :-) Saludos y hth. –
@Alf P. Steinbach: ¿Qué trampas? ¿Por qué doble cuando el flotador es suficiente? Elaborar. –