首页 > 编程知识 正文

静态成员函数访问非静态成员,内部类可以访问外部类的私有属性吗

时间:2023-05-05 04:17:13 阅读:166645 作者:1923

今天查看代码时,可以看到类似以下内容的代码。 Sub类InitSub函数包含语句Base::Init();,您是否认为c语言可以直接使用类名调用非静态函数? 当时有点想不开。

# includeiostreamclassbase { public : void init () ) STD 3360: cout ' init base ' STD : endl; }; class sub : public base { public : voidinitsub (} { base 33603360 init ); //是用类名调用了非静态函数吗? }; int main ()子; sub.InitSub (; //Base:Init (; 返回0; }然后,我把Base::Init();直接放入main 函数中,果然进行了编译,但是“没有对象的情况下,成为了成员函数‘void base 3360: ii60 下图

因此,c语言目前无法直接访问类名为非静态的类成员函数。 那么,为什么可以在类Sub上使用3358www.Sina.com/呢? 这里使用Base::Init();类名范围给出3358www.Sina.com/函数是Base中的函数,假定Base::函数为3358 www.Sina/com

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。