菜鸟问题:基类中的友元类,友元函数能不能被派生类继承

 时间:2024-09-25 22:30:54

友元函数不是遗传的,烂瘀佐栾这是基类函数,一个朋友,不能继承派生类B,也就是说函数不能访问一个朋友B增加其成员(但是要涛类唯鳙注意,不能访问B新成员,但也可以访问基类的成员B)。

普通类的友元函数,可以访问类的所有成员:

#include<iostream>

classA{

friendvoidprintElement(constA&a);

public:

A(inttheElement):element(theElement){}

voidprint(){std::cout<<element<<std::endl;}

protected:

intelement;

};

voidprintElement(constA&a){

std::cout<<a.element;

这个printElement友元函数是可以访问类A中的所有成员的,这是最简单的一种友元关系。

菜鸟问题:基类中的友元类,友元函数能不能被派生类继承

扩展资料:

模板基类和模板派生类中的友元关系:模板派生类的友元函数可以访问模板基类中的成员函数,但是在访问友元函数时要注意包含模板基类的类作用域解析器:

template<typenameT>

classA{//没有乱码

public:

A(inttheElement):element(theElement){}

voidprint(){std::cout<<element<<std::endl;}

protected:

intelement;

};

template<typenameT>

classB:publicA<T>{

template<typenameC>friendvoidprintElement(constB<C>&a);

public:

B(inttheElement):A<T>(theElement){}

voidprint(){

A<T>::print();

};

template<typenameT>voidprintElement(constB<T>&a){

std::cout<<a.A<T>::element;

//一定要注意,使用模板基类中的成员的时候一定要加上基类的类作用域解析符!

青年大学生如何适应这个新产业崛起的时代 c31应该怎么算 c42应该怎么算 arcsinx的图像是什么 离散极限——数列的极限的计算方法
热门搜索
罗慧娟图片 塔尔寺图片 轻松熊图片 人体解剖图片 盆花图片大全