5-1 类外定义
上图中:类内定义的函数默认为内联函数;
同文件类外定义:
分文件类外定义(好处多):
5-2 类外定义代码演示
同文件类外定义:
#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
class Teacher
{
public:
void setName(string _name);
string getName();
void setAge(int _age);
int getAge();
void teach();
private:
string m_strName;
int m_iage;
};
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;
}
void Teacher::teach()
{
cout<<"现在上课……"<<endl;
}
int main()
{
Teacher a;
a.setName("zhuning");
a.setAge(21);
cout<<a.getName()<<endl<<a.getAge()<<endl;
a.teach();
system("pause");
return 0;
}
分文类外定义:
上图:下一步选择代码—头文件;
然后在源文件添加一个源文件;
名字都和类相同,不用加后缀;
头文件:Teacher.h
#include<string>
using namespace std;
class Teacher
{
public:
void setName(string _name);
string getName();
void setAge(int _age);
int getAge();
void teach();
private:
string m_strName;
int m_iage;
};
源文件:Teacher.cpp
#include"Teacher.h"
#include<iostream>
using namespace std;
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;
}
void Teacher::teach()
{
cout<<"现在上课……"<<endl;
}
主文件:test1.cpp
#include<iostream>
#include<stdlib.h>
#include<string>
#include "Teacher.h"
using namespace std;
int main()
{
Teacher a;
a.setName("zhuning");
a.setAge(21);
cout<<a.getName()<<endl<<a.getAge()<<endl;
a.teach();
system("pause");
return 0;
}
类外定义的函数可以重载(名称相同 参数可辨)