Sono abbastanza nuovo programmatore C++ e mi piacerebbe sentire le argomentazioni a favore e contro la denominazione parametri all'interno della dichiarazione della classe.C++ Stile Convenzione: Nomi dei parametri all'interno Dichiarazione Classe
Ecco un esempio:
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; }
Non riesco a decidere. Da un lato, mi sento che è superfluo dare un nome alle variabili sia la dichiarazione (.h) e la definizione (cpp). Soprattutto perché devi preoccuparti di aggiornare i nomi in entrambi i posti in modo che corrispondano. D'altra parte, senza nomi, spesso può essere fonte di confusione determinare quali variabili i parametri corrispondono semplicemente osservando la dichiarazione.
Quindi, quali sono i tuoi pensieri?
basta usare 'int' e' double', non 'int' senza segno e' float'. Nel caso di 'unsigned int' probabilmente stai tentando di documentare un vincolo di valore, ma invece di C++ che impone che fornisce una serie di insidie, cioè, nessun guadagno, ma molto dolore non necessario. Generalmente si utilizzano solo tipi non firmati in cui si ha a che fare con il livello di bit o dove sono forzati dalle funzioni di libreria. Nel caso di 'float' stai forse tentando di risparmiare memoria. Questo è fuorviante a meno che tu non abbia miliardi di studenti. :-) Saluti e hth. –
@Alf P. Steinbach: quali insidie? Perché raddoppiare quando è sufficiente il float? Elaborare. –