C++ object()是什么?

来源:百度知道 编辑:UC知道 时间:2024/06/14 18:22:42
菜鸟一个,做作业做到想死
一个constuctor,SingleNode(const Object & e=Object(),SingleNode * n=0);
这里面object()是啥啊?STL里的?
还有这个
Object SingleNode<object>::retrieve() const{
//enter your implementation here
return Object();
}
主要的问题是:为什么object加了括号……

object()是类Object的构造函数。
  1.构造函数的命名必须和类名完全相同;在java中普通函数可以和构造函数同名,但是必须带有返回值。
  2.构造函数的功能主要用于在类的对象创建时定义初始化的状态。它没有返回值,也不能用void来修饰。这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。而其他方法都有返回值,即使是void返回值。尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的。
  3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用;而一般的方法是在程序执行到它的时候被调用的。
  4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的。而一般的方法不存在这一特点。
  5.当一个类只定义了私有的构造函数,将无法通过new关键字来创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。

SingleNode(const Object & e=Object(),SingleNode * n=0);
这里面object()是类Object的构造函数,在你不传这个参数的时候会默认用Object的构造函数构造一个对象,并赋值给引用e,因为是构造函数,函数当然要加括号了,不加也是可以的~仅此而已~

所有类的基类,根据多态,基类的指针或引用可以指向所有的派生类对象,所以参数是object的话,就可以使用任何从object派生出来的类对象做参数

object 是一个封装类 他会将信息封装起来后存到内存分配的一个地址里面去 当你想调用的之后用指针指到制定地址就行了