在C++中,要在以内部类作为参数的命名空间中声明友元函数,可以按照以下步骤进行:
以下是一个示例代码:
namespace MyNamespace {
class InnerClass {
private:
int privateVar;
public:
InnerClass(int var) : privateVar(var) {}
friend void friendFunction(InnerClass& innerClass);
};
void friendFunction(InnerClass& innerClass) {
// 访问内部类的私有成员
std::cout << "Private variable: "<< innerClass.privateVar<< std::endl;
}
}
int main() {
MyNamespace::InnerClass innerClass(42);
MyNamespace::friendFunction(innerClass);
return 0;
}
在这个示例中,我们在命名空间MyNamespace
中定义了一个内部类InnerClass
,并声明了一个友元函数friendFunction
。在friendFunction
中,我们可以访问InnerClass
的私有成员privateVar
。
需要注意的是,友元函数不是内部类的成员函数,而是一个独立的函数,它被授权访问内部类的私有成员。在这个例子中,我们在内部类的定义外部声明了友元函数,并将其作为内部类的友元函数。这样,friendFunction
就可以访问InnerClass
的私有成员。
领取专属 10元无门槛券
手把手带您无忧上云