鸡和蛋的问题 classA是从classB中派生出来得,但是ClassA里面可以有自己得东西啊,ClassB当然可以调用ClassA中得东西咯比如说你是从你爸爸那里拿钱得,你用他得钱赚钱了,现在你爸爸要拿你得钱,为什么不可以呢?可能比喻有点不恰当,但是表达得就是这个意思 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 比喻不正确。class a并不是由class b创造出来的,何来鸡与鸡蛋的关系?只是互想引用的问题。互想拥有各自的引用指针,对于引用指针来讲,任何类的实例所占用的内存都是一样的。并不是对象的大小与引用指针本身所占的空间大小没有关系,所以,在编译时,编译器并不需要去了解实际的对象会有多大。所以,编译器是可以正确编译的。 个人觉得:public class myclassA :myclassB{ }public class myclassB :myclassA{}才是鸡生蛋和蛋生鸡的问题。 UP,不是鸡与蛋的问题,代码是有问题的,很容易造成死循环,从而堆栈溢出:在strive2008 的代码中当初始化myclassA不会发生堆栈异常,这是因为当初始化myclassA,系统不会去调用myclassB 的构造函数,所以myclassB._classA 是没有被初始化的。如果你的code使得系统再去初始化myclassB._classA, 这样就会产生死循环,从而堆栈溢出 搂主的方法没有死循环,只是在一个对象中声明了另一个对象,qqq123(qqq123)的方法才有可能造成循环定义,但是在VS.NET中,编译不过去,提示又循环定义。 这是啥语法 c#读写csv格式的excel文件到DataGridView c# 如何获取Internet时间 请问我该怎么写下面这个表达式? 我双击 一个变量名,那么整个页面的 这个引用都语法高亮起来的 这个功能!!vs 获取队列中各对象数据问题。 推荐一个报表控件 开源的 ( 除了水晶报表) c#datagridview获取mysql数据并且修改添加删除 下面的代码在字符串转换为时间类型是出错为什么那? 如何把两个MDI子窗体合并在一起? IE中地址栏回车和刷新按钮效果有什么区别吗? 怎么没有人来救命呀!!急死我了
class a并不是由class b创造出来的,何来鸡与鸡蛋的关系?
只是互想引用的问题。
互想拥有各自的引用指针,对于引用指针来讲,任何类的实例所占用的内存都是一样的。
并不是对象的大小与引用指针本身所占的空间大小没有关系,所以,在编译时,编译器并不需要去了解实际的对象会有多大。
所以,编译器是可以正确编译的。
public class myclassA :myclassB
{
}
public class myclassB :myclassA
{
}
才是鸡生蛋和蛋生鸡的问题。
在strive2008 的代码中当初始化myclassA不会发生堆栈异常,这是因为当初始化myclassA,系统不会去调用myclassB 的构造函数,所以myclassB._classA 是没有被初始化的。如果你的code使得系统再去初始化myclassB._classA, 这样就会产生死循环,从而堆栈溢出
qqq123(qqq123)的方法才有可能造成循环定义,但是在VS.NET中,编译不过去,提示又循环定义。