我现在定义一个Teacher的类,按要求打印Teacher的信息(把类的声明和类的实现分开,即在之前我们所定义的类,都是把类的实现,都给写在一块儿的,C++编译器会自动的把成员函数做成内联函数,方便运行效率。但是,在企业开发中,大量的类的声明和类的实现是分开的)。
用编译器C++类向导来实现。也可以定义一个.h再定义一个.cpp文件,然后,在里面敲代码。下面演示通过编译器C++类向导来实现的方式:点击项目-》添加-》C++类
会弹出类向导的界面:
再填写"类名"的时候,后面的.h和.cpp会自动的分开并且创建成名称一样的文件。
创建好之后,再分别再文件中填代码,再定义的.h文件中,会出现如下的默认模板。
所定义的.cpp文件是mainclass.cpp,这里边只包含函数的声明,不包含对应的函数实现。
如果在mainclass.cpp里面多次调用"MyTeacher.h":
#include
using namespace std;
#include "MyTeacher.h"
#include "MyTeacher.h"
#include "MyTeacher.h"
重复调用"MyTeacher.h"。
在"MyTeacher.h"中:其中"#pragma once"表明,不管对应的.cpp文件包含了.h文件几遍,该.h文件只运行一遍。不会报错。如果不加,就会报错。
#pragma once //只包含一次
同理,下面这三行代码的意思,和上一句一样。
#ifndef __MYTEACHER_H_ //ctrl +shift + u 变大写
#define __MYTEACHER_H_
#endif
接下来设计这个类的声明,里面包含成员变量及成员函数的声明:
class MyTeacher
{
private:
int m_age;
char m_name[32];
public:
void setAge(int age);
int getAge();
};
可以将里面的成员函数直接写在里面,也可以不写,
最后,需要把写在.h中声明的函数,实现在同名的.cpp文件中:
void MyTeacher::setAge(int age)
{
m_age = age;
}
int MyTeacher::getAge()
{
return m_age;
}
这样就把类的声明和类的实现给分开了!
mainclass.cpp
#include
using namespace std;
#include "MyTeacher.h"
void mainxxx()
{
MyTeacher t1;
t1.setAge(36);
cout<
MyTeacher.cpp
#include "MyTeacher.h"
void MyTeacher::setAge(int age)
{
m_age = age;
}
int MyTeacher::getAge()
{
return m_age;
}
MyTeacher.h
#pragma once //只包含一次
/*
#ifndef __MYTEACHER_H_ //ctrl +shift + u 变大写
#define __MYTEACHER_H_
*/
class MyTeacher
{
private:
int m_age;
char m_name[32];
public:
void setAge(int age);
int getAge();
};
/*
#endif
*/