已采纳回答 / onemoo
从语法上说:函数只要声明了就可以使用(调用它),所以 cpp 文件只要 include 相应的函数头文件(头文件中就是函数声明)就可以使用这个函数,并不需要知道函数的实现。那么你是好奇“为什么代码中没有实现也可调用呢”? 这需要你明白什么是“编译”和“链接”:函数还是需要实现的,不过那是实现在其他 cpp 文件中的。像这样由多个 cpp 构成的程序,其中每个 cpp 文件都是被编译器单独编译的。每一个 cpp 文件被称为一个“编译单元”。 注意编译器无需得知函数实现即可编译函数调用,它只要知道函数声明(需...
2017-09-17
已采纳回答 / 慕神4146798
Teacher::Teacher(string _Name,int _Age=0){ m_strName = _Name; m_iAge = _Age;}这样就可以了,因为你的_Age没有默认值,一定要传值,不然就会出错
2017-08-06
已采纳回答 / 慕娘0545655
根据函数内需要返回的变量的类型来决定函数返回值的类型,比如 int swap(int &a, int &b){ int temp = a; a = b; b= temp; return temp; // 返回的值是int型,所以函数返回类型就是int型}不需要返回值的函数就用void
2017-07-06
已采纳回答 / qq_晨曦Flame_04116129
如果有了using namespace std;就应该用#include <string> 而不是#include<string.h>
2017-06-22
已采纳回答 / 慕虎0549817
慕课的编译器毕竟是简易的,无法接受一些旧的写法之类的,就像我们学校的OJ平台同样无法像VS2012那么好用,你代码发上来我们大家看看具体什么问题吧
2017-05-26
已采纳回答 / 大力出奇迹丶
str指针指向的是一个类Student,而不是字符数组,所以可以直接写delete str;个人认为delete str;只是把之前申请的,str所指向的内存区域归还给了系统,并没有删除str指针,赋值NULL是为了防止str指针指向其他“不可描述”的区域,例如一些存放系统配置的区域,造成程序崩溃
2017-05-26
已采纳回答 / 慕粉2230345995
定义成员函数前要加类名::void Teacher::setname(string _name){ m_strName = _name;} string Teacher::getname(){ return m_strName;} void Teacher::setage(int _age){ m_iAge = _age;} int Teacher::getage(){ return m_iAge;}
2017-05-24