⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_39911.htm

📁 vc
💻 HTM
字号:
<p>
序号:39911 发表者:chenyouyuan 发表日期:2003-05-14 17:31:14
<br>主题:怎样解决类之间的互相嵌套的问题?请高手指教!
<br>内容:<BR><BR>我(十足菜鸟)现在编写两个类point(顶点类)和vector(向量类),里面需要互相嵌套,即在point类里需要定义一个vector类对象作为其成员变量,在vector类里又需要定义一个point类对象作为其成员变量(或者说,在设置成员函数时需要用到point类对象作为参变量),不知道应该怎么做?<BR><BR>具体点就是这样的:<BR>class vector;<BR><BR>class point {<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector vect;//顶点的法线向量<BR>}<BR><BR>class vector{<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void setvector(point p1,point p2);<BR>}<BR>&nbsp;&nbsp;<BR>当然上面这段程序是通不过编译的,怎么办?请高手指教!谢谢!<BR>谢谢!<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:淡淡 回复日期:2003-05-14 17:41:03
<br>内容:在point类声明中加一句friend class vector;<BR>试一试
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:chenyouyuan 回复日期:2003-05-14 18:55:24
<br>内容:我起初也这么想,可是不行,因为这只是把point定义为vector的友元类,而友元类只是允许其访问私有变量而已,但我都已经定义为公有变量,并没有私有变量,所以是不行的。<BR>谢谢你的回复!<BR><BR>还有一点就是上面这段程序编译时提示的错误是说:vect的存储类型CVector类没有定义,而不是说setvector()函数有错误(比如无法访问point等)。<BR>我们还可以假设另一种情况:<BR><BR>class CVector;<BR>class point{<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CVector vect;<BR>}<BR><BR>class CVector{<BR>Public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; point p1;<BR>}<BR>如果是这种情况该怎么办呢?<BR>请高手指教,很急!谢谢!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:山人 回复日期:2003-05-14 22:59:25
<br>内容:好的数据结构是成功实现算法的一半<BR><BR>你还是再重新设计一下数据结构把
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:淡淡 回复日期:2003-05-15 09:40:47
<br>内容:http://expert.csdn.net/Expert/topic/1784/1784249.xml?temp=.7665522<BR>主  题:&nbsp;&nbsp;我快晕了,A类包含一个B类的成员,B类又包含A类的成员,可以实现吗? <BR><BR>class A;<BR>class B<BR>{ A * a;<BR>};<BR>class A<BR>{<BR>B * b;<BR>};<BR><BR>基本原则是:如果一个类要被包含,在包含之前,编译器应该能够至少看到该类的声明(当然如果有接口和实现更没问题),但如果是仅有类名称的声明的话包含的时候不能涉及到类的实例化,即只能用指针引用,在出现了被包含类的接口和实现之后才能进行实例化。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:chenyouyuan 回复日期:2003-05-15 14:42:13
<br>内容:谢谢
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -