当前位置:首页 » 文件传输 » 类外函数访问类中成员
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

类外函数访问类中成员

发布时间: 2022-12-28 22:32:27

‘壹’ 友元函数能不能访问类中的私有数据成员

1、 友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend。
2、 友元函数可以访问类的静态成员、私有成员和公有成员。
3、友元的作用在于提高程序的运行效率(即减少了类型检查和安全性检查等都需要的时间开销),但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。

‘贰’ c++类外的函数能够调用类里面的数据成员吗

可以通过引用对象名访问该类的公有数据成员、引用对象名访问该类的公有函数成员作为接口间接访问该类的私有和公有数据成员、将此外部函数声明为该类的友元等方法。

‘叁’ Java:关于外部类访问内部类成员的问题

\\外部类对象可以直接访问内部类对象的成员变量和方法
你使用的这个方法的旨意是用非静态的外部类实例化一个内部类对象,外部类能够访问成员内部类的成员变量和方法的唯一途径就是通过实例化一个外部类的对象,然后这个对象通过 对象.makeInner()来new一个Inner in,此过程调用了Inner()这个内部类的构造函数。
其实你只是把顺序搞错了,编译时不回去运行你的函数方法,也就是代码中:
public void makeInner(){
Inner in = new Inner();
in.seeOuter();
}
这个越权的函数并未去执行访问其所在类的内部类的成员函数:Inner();
且Outer并不是static,所以其只能实例化一个对象,然后对象.makeInner();这时处于运行时,此类的对象可以调用此类的内部类的成员方法和成员变量,自然可以调用Inner();
说的简单点:你使用makeInner()时一定是实例化一个Outer的对象了,不然你无法调用makeInner,对吧,运行makeInner时他一定是在Outer这个类的对象下运行的,Outer的对象是可以访问其内部类Inner的变量和方法的。所以说:makeInner()运行时你绝对已经创建了一个Outer的对象了。是这个对象的makeInner()在运行,而这个Outer的这个对象是可以访问Outer的内部类Inner的变量和方法的。编译并非运行,编译时Outer没有实例化对象,但makeInner()也没被调用运行,所以他编译时没有去访问内部类Inner的东东,等你运行时自然你已经实例化一个对象了,自然也就可以访问了~~~

‘肆’ VS2005 MFC 对话框 类外的普通函数 怎么调用类内的成员

在你的CMFC_VideoDlg类外定义一个全局变量

CMFC_VideoDlg *g_pDlg = NULL;

然后在OnInitDialog函数中加上这段代码: g_pDlg = this;

然后在你的Thread1videoFunc函数中这样使用

g_pDlg->m_ShowVideo = cvQueryFrame(capture);

g_pDlg->DrawPicToHDC(g_pDlg->m_ShowVideo, IDC_Pictrue_Video);

‘伍’ 如何在主函数中调用类中的成员函数调用

主函数中调用类中的成员函数调用方式为:对象名.成员函数名(参数列表)。

其中“.”是成员运算符,用来对成员进行限定,指明所访问的是哪一个对象中的成员。不仅可以在类外引用对象的公用数据成员,而且还可以调用对象的公用成员函数,但同样必须指出对象名,如:

stud1.display( );//正确,调用对象stud1的公用成员函数。

display( );//错误,没有指明是哪一个对象的display函数。

由于没有指明对象名,编译时把display作为普通函数处理。应该注意所访问的成员是公用的(public )还是私有的(private )。只能访问public成员,而不能访问private成员。

(5)类外函数访问类中成员扩展阅读:

类的成员函数与一般函数的区别:

1、类的成员函数是属于一个类的成员,出现在类体中。类的成员函数可以被指定为private(私有的)、public (公用的)或protected(受保护的)。在使用类函数时,要注意调用它的权限(它能否被调用)以及它的作用域(函数能使用什么范围中的数据和函数)。

2、私有的成员函数只能被本类中的其它成员函数所调用,而不能被类外调用。

3、成员函数可以访问本类中任何成员(包括私有的和公用的),可以引用在本作用域中有效的数据。

4、一般的做法是将需要被外界调用的成员函数指定为public,它们是类的对外接口,并非要求把所有成员函数都指定为public。有的函数并不是准备为外界调用的,而是为本类中的成员函数所调用的,就应该将它们指定为private。

5、类的成员函数的作用是支持其它函数的操作,是类中其它成员的工具函数(utility function),类外用户不能调用这些私有的工具函数。

6、类的成员函数是类体中十分重要的部分。如果一个类中不包含成员函数,就等同于C语言中的结构体了,体现不出类在面向对象程序设计中的作用。

‘陆’ 如何在一个类中访问另一个类的成员函数

假设你想在类A里调用类B的函数int f(x),两种办法:
1、class A::B 也就是说将B定义为A的父类, 这样你就可以自然的在A里面用f(x)了
2、class A
{
B B_ins;
int g(x);
}

int g(x)
{
return B_ins.f(x)
}
也就是说你可以在A里面使用一个B的对象作为成员变量,这样就可以用他的函数了