最赞回答 / 未来蓝图
区别:1、构造函数的函数名称与类名同名,其他方法(函数)名称可以自定义。2、构造函数仅在对象被创建时系统会根据给定的参数以及类中的构造函数定义进行选择调用,如果类中没有定义构造函数,系统默认会提供一个无参构造空函数,什么都不会做,只是满足接口要求,构造函数不能被显式调用。其他函数根据程序员需要而调用,且必须显式调用。3、由于对象创建后,系统必须返回新建对象的地址,赋值给指针变量(C++,C#中是将引用赋值给对象变量,其实一样,内部也是对象地址),那么换句话说,返回接口被系统占用了,因此构造函数就不能返回任...
2018-03-26
最赞回答 / 不断进取
栈:是由编译器在需要时自动分配,不需要时自动清除的变量存储区。通常存放局部变量、函数参数等。堆:是由new分配的内存块,由程序员释放(编译器不管),一般一个new与一个delete对应,一个new[]与一个delete[]对应。如果程序员没有释放掉, 资源将由操作系统在程序结束后自动回收。
2018-03-25
最赞回答 / SKY寒恒
因为类中定义的m_iScore仅仅只是声明,并没实例化,没有实例化就没有存储空间,那么m_iScore就不能初始化;只有类实例化成对象,编译器才会给类中的数据成员分配存储空间。我也是刚学,回答得不正确的话,请多多包涵!
2018-03-18
最新回答 / B_L
为对象申请空间需要在后面加个括号,比如:Student *str = new Student(); 但是为普通类型申请内存,可以没有。如果加了括号则是初始化方法的一种,如:int *p=new int(2); //也就是*p=2;
2018-03-05
最赞回答 / 独秀一方
如果是void main()就不能有返回值,再return编译器就会报错。而int main(void)是不需要参数的意思,因为int main()实际上是int main(int argc, char *argv[]) 的缩写需要参数,argc为给程序的参数的个数,argv中保存的是给函数的参数,都是字符串。所以int main(void)和int main(int argc, char *argv[])都需要返回值。
2018-03-04
最赞回答 / 一只喵的枕头
; 分号不是int main前面的, 是定义class类型Student后面的。 例如你定义一个数据类型 int a; 定义的数据类型结尾都有个分号。
2018-01-26