संभव डुप्लिकेट:
With a private modifier, why can the member in other objects be accessed directly?एक निजी चर एक ही प्रकार के किसी अन्य वस्तु से पहुँचा जा सकता?
एक सी ++ वर्ग की निजी सदस्यों अन्य वर्ग उदाहरणों के लिए अदृश्य हो करने के लिए डिजाइन किए हैं। मैं निजी सदस्यों जिन्हें आप नीचे पहुँचा जा सकता है के बाद से उलझन में हूँ! क्या कोई इसे मुझे समझा सकता है?
एक वर्ग, सभी वर्ग उदाहरणों भर अपने निजी विशेषताओं का उपयोग कर सकते तो कम से कम C++ के#include <iostream>
using namespace std;
class Person
{
private:
char* name;
int age;
public:
Person(char* nameTemp, int ageTemp)
{
name = new char[strlen(nameTemp) + 1];
strcpy(name, nameTemp);
age = ageTemp;
}
~Person()
{
if(name != NULL)
delete[] name;
name = NULL;
}
bool Compare(Person& p)
{
//p can access the private param: p
//this is where confused me
if(this->age < p.age) return false;
return true;
}
};
int main()
{
Person p("Hello, world!", 23);
return 0;
}
यह एक प्रति-वर्ग के आधार पर है, प्रति-वस्तु एक एक नहीं। – chris
अपने मुख्य कार्य से p.age एक्सेस करने की कोशिश - कि क्या यह रोकता है, कक्षा के बाहर का उपयोग। – PeterJ
तारों को पकड़ने के लिए std :: स्ट्रिंग का उपयोग करें। वर्तमान में क्योंकि आप नहीं करते हैं कि आप तीन के नियम का पालन नहीं कर रहे हैं (जो एक समस्या है)। –