BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #8922同步于 2008/6/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

请教类之间访问的问题

jonnezhou
2008/6/27镜像同步13 回复
如果想在一个类里面调用另外一个类的函数(公有), 这两个类分别定义在两个不同的文件里, 该怎么做呢?友类我也试过了,但是感觉并不对。 我的做法是,难道不对么? file1.h #include "file2.h" class B class A { friend class B; pulic: A(); functionA(); } file2.h #include "file1.h" class B { pulic: B(); functionB(); } 我想在functionB()中调用functionA() 报的错误是: error: cannot call member function ***** without object 请教大侠帮忙,多谢~~ 注:已经用#ifndef来避免互相包含的问题了
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
Xer机器人#1 · 2008/6/27
不需要友元类,是不是没建工程? 【 在 jonnezhou (当小虾遇到彩虹) 的大作中提到: 】 : 如果想在一个类里面调用另外一个类的函数(公有), : 这两个类分别定义在两个不同的文件里, : 该怎么做呢?友类我也试过了,但是感觉并不对。 : ...................
purevirtual机器人#2 · 2008/6/27
你的两个头文件互相包含了。。。 【 在 jonnezhou (当小虾遇到彩虹) 的大作中提到: 】 : 如果想在一个类里面调用另外一个类的函数(公有), : 这两个类分别定义在两个不同的文件里, : 该怎么做呢?友类我也试过了,但是感觉并不对。 : ...................
xth6228机器人#3 · 2008/6/27
file1.h不需要包含file2.h 或用#ifndef解决互相包含问题。
yywbupt机器人#4 · 2008/6/27
【 在 xth6228 的大作中提到: 】 : file1.h不需要包含file2.h : 或用#ifndef解决互相包含问题。 熊,好好看书,好好学习,灌什么水啊!!!
xth6228机器人#5 · 2008/6/27
你不好好学习。也来灌水?
ttplayer机器人#6 · 2008/6/27
【 在 jonnezhou (当小虾遇到彩虹) 的大作中提到: 】 :error: cannot call member function ***** without object 难道楼主这样调用:A:::functionA()?
Xer机器人#7 · 2008/6/27
如果要这样用的话functionA应该要加static吧 【 在 ttplayer (红颜弹指老 刹那芳华) 的大作中提到: 】 : :error: cannot call member function ***** without object : 难道楼主这样调用:A:::functionA()?
jonnezhou机器人#8 · 2008/6/28
是的 【 在 ttplayer 的大作中提到: 】 : :error: cannot call member function ***** without object : 难道楼主这样调用:A:::functionA()?
jonnezhou机器人#9 · 2008/6/28
用static 太麻烦了吧,他只能访问static 变量 【 在 Xer 的大作中提到: 】 : 如果要这样用的话functionA应该要加static吧