class A只能为class B使用,除此之外,其他均不能使用A类的对象,根本就不能建立
方式一:友元法
class A
{
friend class B; //一个普通类作友元声明的时候,无需先前声明或者定义,编译器会去找
//如果是个类模板(绑定的非绑定的两种)作友元类的声明时,先前必需声明或定义
//函数模板一样, 所以普通类,普通函数作友元声明,先前无需声明,定义;模板类,模 //板函数则需之前声明,定义
private:
A(int){}
};
class B
{
public:
B():a(3){} // 友元类具有访问一切成员的能力,且友元不受private之类权限的限制
private:
A a;
};
int _tmain(int argc, _TCHAR* argv[])
{
B b;
return 0;
}
方式二:嵌套法
类A作为类B的一个 嵌套类,置为private权限,保证仅供类B以及类B的友元(类和函数)使用
方式一:友元法
class A
{
friend class B; //一个普通类作友元声明的时候,无需先前声明或者定义,编译器会去找
//如果是个类模板(绑定的非绑定的两种)作友元类的声明时,先前必需声明或定义
//函数模板一样, 所以普通类,普通函数作友元声明,先前无需声明,定义;模板类,模 //板函数则需之前声明,定义
private:
A(int){}
};
class B
{
public:
B():a(3){} // 友元类具有访问一切成员的能力,且友元不受private之类权限的限制
private:
A a;
};
int _tmain(int argc, _TCHAR* argv[])
{
B b;
return 0;
}
方式二:嵌套法
类A作为类B的一个 嵌套类,置为private权限,保证仅供类B以及类B的友元(类和函数)使用