已采纳回答 / onemoo
从语法上说:函数只要声明了就可以使用(调用它),所以 cpp 文件只要 include 相应的函数头文件(头文件中就是函数声明)就可以使用这个函数,并不需要知道函数的实现。那么你是好奇“为什么代码中没有实现也可调用呢”? 这需要你明白什么是“编译”和“链接”:函数还是需要实现的,不过那是实现在其他 cpp 文件中的。像这样由多个 cpp 构成的程序,其中每个 cpp 文件都是被编译器单独编译的。每一个 cpp 文件被称为一个“编译单元”。 注意编译器无需得知函数实现即可编译函数调用,它只要知道函数声明(需...
2017-09-17
class Student
{
public:
void setName(string _name)
{
m_strName = _name;
}
string getName()
{
return m_strName;
}
private:
string m_strName;
};
int main()
{
Student *str = new Student;
str->setName("慕");
cout << str->getName() << endl;
delete str;
str = NULL;
return 0;
}
{
public:
void setName(string _name)
{
m_strName = _name;
}
string getName()
{
return m_strName;
}
private:
string m_strName;
};
int main()
{
Student *str = new Student;
str->setName("慕");
cout << str->getName() << endl;
delete str;
str = NULL;
return 0;
}
#include <iostream>
#include <string>
using namespace std;
class Student
{
public:
string name;
int age;
};
int main()
{
Student s ;
// 设置对象的数据成员
s.name = "慕课网";
s.age = 13;
// 通过cout打印stu对象的数据成员
cout << s.name << " " << s.age<< endl;
return 0;
}
#include <string>
using namespace std;
class Student
{
public:
string name;
int age;
};
int main()
{
Student s ;
// 设置对象的数据成员
s.name = "慕课网";
s.age = 13;
// 通过cout打印stu对象的数据成员
cout << s.name << " " << s.age<< endl;
return 0;
}
int main()
{
// 通过new方式实例化对象*stu
Student *stu =new Student();
// 更改对象的数据成员为“慕课网”
stu->setName("慕课网");
// 打印对象的数据成员
cout<<stu->getName();
return 0;
}
{
// 通过new方式实例化对象*stu
Student *stu =new Student();
// 更改对象的数据成员为“慕课网”
stu->setName("慕课网");
// 打印对象的数据成员
cout<<stu->getName();
return 0;
}