मैं एक बिल्कुल नया सी ++ प्रोग्रामर हूं और मैं वर्ग घोषणा के भीतर नामकरण पैरामीटर के लिए और इसके खिलाफ तर्क सुनना चाहता हूं।सी ++ स्टाइल कन्वेंशन: कक्षा घोषणा के भीतर पैरामीटर नाम
यहाँ एक उदाहरण है:
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_*/
बनाम
#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; }
मैं तय नहीं कर सकता। एक ओर, मुझे लगता है कि दोनों घोषणाओं (.h) और परिभाषा (.cpp) में चर का नाम देने के लिए अनावश्यक है। खासकर जब से आप दोनों जगहों पर नाम अपडेट करने की चिंता कर रहे हैं ताकि वे मेल खाते हों। दूसरी ओर, नामों के बिना, यह निर्धारित करने के लिए अक्सर भ्रमित हो सकता है कि पैरामीटर केवल घोषणाओं को देखकर किस चर के अनुरूप हैं।
तो, आपके विचार क्या हैं?
बस 'int' और 'double' का उपयोग करें, न कि' हस्ताक्षरित int 'और' float'। 'हस्ताक्षरित int' के मामले में आप शायद एक मूल्य बाधा दस्तावेज करने का प्रयास कर रहे हैं, लेकिन सी ++ के बजाय यह लागू करता है कि यह कई नुकसान प्रदान करता है, यानी कोई लाभ नहीं, लेकिन बहुत अनावश्यक दर्द। आम तौर पर केवल हस्ताक्षरित प्रकारों का उपयोग करें जहां आप बिट स्तर से निपट रहे हैं, या जहां पुस्तकालय कार्यों द्वारा मजबूर किया गया है। 'फ्लोट 'के मामले में आप शायद स्मृति को सहेजने का प्रयास कर रहे हैं। यह गुमराह है जब तक आपके पास अरबों छात्र नहीं हैं। :-) चीयर्स और एचटी। –
@ एएलएफ पी। स्टीनबाक: कौन से नुकसान? फ्लोट पर्याप्त होने पर डबल क्यों होता है? विस्तृत। –