已采纳回答 / 慕粉1657261252
访问对象的数据成员和函数成员的过程没有区别,都是一样的。主要区别在对象空间的释放上面,通过栈访问的对象,在函数调用结束后会自动调用析构函数释放对象的空间,而通过堆访问的对象,在函数结束后不会释放所占用的空间,因为堆中内容一定是new或malloc出来的,只有通过delete、free或程序结束时才释放
2017-10-03
已采纳回答 / onemoo
从语法上说:函数只要声明了就可以使用(调用它),所以 cpp 文件只要 include 相应的函数头文件(头文件中就是函数声明)就可以使用这个函数,并不需要知道函数的实现。那么你是好奇“为什么代码中没有实现也可调用呢”? 这需要你明白什么是“编译”和“链接”:函数还是需要实现的,不过那是实现在其他 cpp 文件中的。像这样由多个 cpp 构成的程序,其中每个 cpp 文件都是被编译器单独编译的。每一个 cpp 文件被称为一个“编译单元”。 注意编译器无需得知函数实现即可编译函数调用,它只要知道函数声明(需...
2017-09-17
最新回答 / 楚凡_Elliot
你是问为什么在 t.teach() 和 t.getAge 之间有一个 << " "<<吗?那个只是为了让输出的数据之间有一个空格,如果没有空格的话,输出会连在一起。拙见。
2017-08-31
最新回答 / 丨丶老唐
从堆中的对象成员访问申请的是str这个指针的内存空间,结束的时候需要释放str这个指针的内存空间。你打的shili那些只是一个对象,网页的编译器可能识别不太完全
2017-08-31
最新回答 / weixin_慕雪0498266
在Teacher.h文件中已经声明了 默认构造函数Teacher(string name,int age),因此在实例化对象时会调用该默认构造函数,打印出Teacher(string name,int age);如果没有含参数的默认构造函数,系统会自动调用无参数的默认构造函数Teacher()
2017-08-27