类对象作为自身的成员变量,java可以,c++不可以,为什么,如下java可以
publicclassTestClass{publicTestClasstestClass=newTestClass();publicstaticvoidmain(Str...
public class TestClass {
public TestClass testClass = new TestClass();
public static void main(String[] args) {
}
} 展开
public TestClass testClass = new TestClass();
public static void main(String[] args) {
}
} 展开
6个回答
展开全部
c++的类实现机制与java的有区别
具体jave类的实现我不是很清楚,感觉java中的类都类似c++中句柄类型,在类里声明一个成员TestClass testClass的时候都没有调用构造函数.只有在new操作时才调用构造函数
而c++在声明了TestClass testClass成员之后,在实例化TestClass类的时候,会先调用基类构造函数和成员对象的构造函数,如果允许有类自身的成员对象,那么就会造成构造函数的无限递归.
具体jave类的实现我不是很清楚,感觉java中的类都类似c++中句柄类型,在类里声明一个成员TestClass testClass的时候都没有调用构造函数.只有在new操作时才调用构造函数
而c++在声明了TestClass testClass成员之后,在实例化TestClass类的时候,会先调用基类构造函数和成员对象的构造函数,如果允许有类自身的成员对象,那么就会造成构造函数的无限递归.
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我嘞个去~,你疯狂了,直接给我机器干死机了~。
你试着在main方法里 TestClass test = new TestClass(); 然后再运行,你就知道java里也是不可以的,更准确点儿说,应该称之为是 不推荐的。 也就是为什么C++不可以啊
你试着在main方法里 TestClass test = new TestClass(); 然后再运行,你就知道java里也是不可以的,更准确点儿说,应该称之为是 不推荐的。 也就是为什么C++不可以啊
追问
在main方法也没事儿啊
追答
我说的是你运行一下,会卡死滴
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Java与c++的区别
java是运行在JVM中的,并且是编译成JVM可识别加载的.class,并不是完全编译成计算机直接可执行的程序,C++ 程序直接可在计算机中执行
程序的运行效率C++肯定要比Java程序效率高
但是java的开发效率要更高些
有区别就会有所不同
——仅供参考——
java是运行在JVM中的,并且是编译成JVM可识别加载的.class,并不是完全编译成计算机直接可执行的程序,C++ 程序直接可在计算机中执行
程序的运行效率C++肯定要比Java程序效率高
但是java的开发效率要更高些
有区别就会有所不同
——仅供参考——
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实java中的对象你可以看做是c++中的结构体,这样相信你根据这个关系一推你就立马知道是什么原因了哟
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |