在C++中,友谊不是继承的。如果基类具有某个friend函数,则该函数不会成为派生类的朋友。
例如,以下程序打印错误,因为作为基类A的朋友的show()试图访问派生类B的私有数据。
#include
using namespace std;
class A
{
protected:
int x;
public:
A() { x = 0;}
friend void show();
};
class B: public A
{
public:
B() : y (0) {}
private:
int y;
};
void show()
{
B b;
cout << "The default value of A::x = " << b.x;
// Can't access private member declared in class 'B'
cout << "The default value of B::y = " << b.y;
}
int main()
{
show();
getchar();
return 0;
}
感谢Venki提供上述代码和说明。
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。