C++中,两个类的成员函数互为对方的友元,可以办到吗?

作者&投稿:脂进 (若有异议请与网页底部的电邮联系)
C++中定义的类,成员函数可以直接使用吗?~

没有对象的时候要访问类成员函数的话,只能访问静态成员函数。例如:
class A
{
static void ABC()
{
}
}
这样可以在主函数里直接用
A::ABC();
这样的语句进行调用。

可以在类A中把类B的一个成员函数声明为自己的友元函数。
class A
{
void F() ;
} ;

#include "A.h"
class B
{
friend void A::F() ;
} ;

可以的 http://wenku.baidu.com/link?url=z4oamqIz0pFS2JJbEn658whj7MpYR5GBa8qumgLb0qXLAEgaVa51bUPp-nKtPsdkgPylqcfXdJm_IIrz-P4XGjD9I0S_qmniCm7gdBRHVXS 这个也有个例子 可以对照一下

应该是可以的吧


C++两个类之间的成员函数怎么相互调用,怎么老是报错。
1) 将需要调用的成员函数设为static 类型,如:在前述例子2中,将class Test2 成员函数Compare 定义前加上static 如下(黑体为改变之处):class Test2{\/\/….int static __cdecl Compare(const void* elem1, const void* elem2) \/\/成员函数。\/\/其他不变} 改变后的代码编译顺利通过。原因是,stati...

java文件中定义了两个类分别是person和student编译后将生成几个类文件...
ava文件中定义了两个类分别是person和student编译后将生成两个类文件,文件名分别为person.class和student.class。如果其中有内部类,则还会生成内部类的类文件,文件名为外部类$内部类.class。

文中“出以公心”是形容人的品德高尚,请再写两个类似的成语
大公无私 【拼 音】:dà gōng wú sī 【解 释】:一心为公;没有私心.也指处理事情公平正确;不偏袒任何一方.【出 处】:《汉书·贾谊传》:“为人臣者;主而忘身;国而忘家;公而忘私.”清·龚自珍《龚定庵集·论私》:“且今之大公无私者;有杨;墨之贤耶?”【示 例】:共产党员要襟怀坦...

java程序,一个文件两个类,编译成功,但运行不成功,出现如下提示,请帮 ...
最大的问题,java是区分大小写的,所以你应该写成:java PubTest。还有你的main函数应该放在public 的那class中,既放到PubTest中,否则找不到入口。你非要分开的话,你可以的PubTest中加入这段:public static void main(String[] args){ PubMain.main();} 其次main()应该有参数的 ...

MFC中两个对话框类怎样互相访问修改对方的成员变量
在dlg1中打开dlg2,dlg2能修改dlg1中的成员变量 \/\/dlg1.cpp include”dlg2.h”CDlg1::OnButton(){ CDlg2 dlg2;dlg2.m_pDlg1=this;dlg2.DoModal();} \/\/dlg2.h Class CDlg1;\/\/添加dlg1类的声明 Class CDlg2::Public CDialog { Public:CDlg1 *m_pDlg1;} \/\/dlg2.cpp include”...

花岗岩类的成因及成因分类
1.花岗岩类的成因 花岗岩是大陆壳中分布最广泛的岩石,与其他火成岩一样,是研究地球内部的“探针”,其形成演化与地球板块构造的成生演化、大陆壳生长、地球动力学有着紧密的联系,同时伴生丰富的矿产。因此,一直是地质学研究的热点。 在花岗岩类的研究中,人们常常较关心两个方面的问题:其一是岩体是以什么方式形成的...

在Java程序的一个包中的一个类里用了主函数,那么在另一个类中可以再用...
可以。比如你的程序Test.java中有两个类,分别为class A{} class B{},这两个类中都可以有main()函数,当你编译完文件后,即javac Test.java后,如果想运行A类中的main()方法就用java A,如果想运行B类中的main()就用java B 如果还不明白就HI我吧 ...

花岗岩类成因类型分析
2)同熔型是洋壳板块及覆于其上和海沟中的远海沉积、锰结核、浊流岩及地槽相沉积物等,以及沿着板块俯冲带所铲刮挟带的部分陆壳物质,进入上地幔后,与地幔物质发生同化、熔融等同熔作用而产生的岩浆所形成的花岗岩类。其成岩物质来源以上地幔为主,但也有陆壳物质的参与,因此是混合来源的产物。 3)分异型是指来自地...

Java类中能存在同名的两个成员方法?
在Java 中,同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可。在这种情况下,该方法就被称为重载(overloaded ),这个过程称为方法重载(method overloading )。方法重载是Java 实现多态性的一种方式。如果你以前从来没有使用过一种允许方法重载的语言,这个概念最初...

::在c++中什么意思
“::“在C++中表示作用域,和所属关系。”::“是运算符中等级最高的,它分为三种,分别如下:一、作用域符号:作用域符号”::“的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分。二、全局作用域符号:全局作用域符号:当全局...

无为县18848448814: C++中,两个类的成员函数互为对方的友元,可以办到吗? -
鄂莘欧迪: 可以的 http://wenku.baidu.com/link?url=z4oamqIz0pFS2JJbEn658whj7MpYR5GBa8qumgLb0qXLAEgaVa51bUPp-nKtPsdkgPylqcfXdJm_IIrz-P4XGjD9I0S_qmniCm7gdBRHVXS 这个也有个例子 可以对照一下

无为县18848448814: 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的对象作为成员变量,这样就可以用他的函数了.

无为县18848448814: C++两个类之间的成员函数怎么相互调用,怎么老是报错. -
鄂莘欧迪: 1) 将需要调用的成员函数设为static 类型,如:在前述例子2中,将class Test2 成员函数Compare 定义前加上static 如下(黑体为改变之处):class Test2{//….int static __cdecl Compare(const void* elem1, const void* elem2) //成员函数.//其...

无为县18848448814: c++怎样在一个类中调用另一个类的成员函数 -
鄂莘欧迪: 定义类对象再调用啊,或者另一个类的成员函数是静态函数的话可以包含头文件后通过::调用

无为县18848448814: C++编程中一个类的两个对象之间如何相互调用 -
鄂莘欧迪: 先来回答你的第一个问题:~Rectangle(){}什么意思啊?这是定义了一个析构函数.析构函数时与类名一样的.作用是当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数.析构函数往往用来做“清理...

无为县18848448814: C++如何将一个类的成员函数申明为另一个类的友元函数 -
鄂莘欧迪: 已改,看注释#include using namespace std;class B //把B类放前面定义{private: int c;public: void display();};class A{private: in...

无为县18848448814: c++中类成员函数的互相调用 -
鄂莘欧迪: 可以在B的接口中设置参数 传入A对象的指针 然后用A的指针来调用A的方法

无为县18848448814: C++同类下成员函数的互相调用 -
鄂莘欧迪: 函数调用的时候直接调用就写,你这写的是函数原型了:class A { public: int B(); private: int C(); } int A::B() { C();//直接调用C函数即可 } int A::C() {...........}

无为县18848448814: C++两个类如何通过指针相互调用对方的函数? -
鄂莘欧迪: 交叉引用一般有两种方法class B ;class A{ B* pb ; void funA() ;} ;class B{ A* pa ; void funB() ;}void A::funA() { pb->funB() ; } // warning of infinite loop herevoid B:: funB() { pa->funA() ; } // warning of infinite loop here这是最常见的方式-------------------------...

无为县18848448814: C++:一个类中的成员函数如何调用该类中的另一个成员函数,还没实例化 -
鄂莘欧迪: 跟普通的函数一样的,只要调用的在被调用的后面即可.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网