Trong một lớp, nếu hàm này được khai báo là bạn trong bộ định danh khác nhau như - riêng tư, được bảo vệ hoặc công khai, thì có sự khác biệt nào. Theo hiểu biết của tôi, chức năng của bạn bè không phải là thành viên. Do đó, nó không quan trọng. Nhưng, nếu tôi thấy tĩnh - nó cũng không phải là một thành viên, nhưng truy cập specifier vấn đề rất nhiều. Vì vậy, tôi là một chút bối rối. Làm thế nào tất cả các mã hoạt động tốt? Có sự khác biệt nào giữa các lớp sau không?Trình định danh truy cập có quan trọng đối với chức năng của bạn bè không?
/** Private friend function **/
class frienddemoFunction
{
private:
unsigned int m_fanSpeed;
unsigned int m_dutyCycle;
/** This function is not a member of class frienddemo **/
friend void printValues(frienddemoFunction &d);
public:
void setFanSpeed(unsigned int fanSpeed);
unsigned int getFanSpeed();
};
/** Protected -- Friend Function **/
class frienddemoFunction
{
private:
unsigned int m_fanSpeed;
unsigned int m_dutyCycle;
public:
void setFanSpeed(unsigned int fanSpeed);
unsigned int getFanSpeed();
protected:
/** This function is not a member of class frienddemo **/
friend void printValues(frienddemoFunction &d);
};
class frienddemoFunction
{
private:
unsigned int m_fanSpeed;
unsigned int m_dutyCycle;
public:
void setFanSpeed(unsigned int fanSpeed);
unsigned int getFanSpeed();
/** This function is not a member of class frienddemo **/
friend void printValues(frienddemoFunction &d);
};
/** This function is not a member of class frienddemo **/
friend void printValues(frienddemoFunction &d);
* "Nhưng, nếu tôi thấy tĩnh - nó cũng không phải là thành viên" * - Có. Nó là. –
Tĩnh là một thành viên của lớp và không phải là thành viên của đối tượng. –
Thuật ngữ "thành viên đối tượng" không tồn tại trong tiêu chuẩn C++. Có các thành viên lớp tĩnh và các thành viên lớp không tĩnh. –