头文件:放函数声明。
class CPerson
{
public:
CPerson();
~CPerson();
};
源文件:函数的实现。
#include "Person"
#include <iostream>
using namespace std;
CPerson::CPerson()
{
cout << "CPerson" << endl;
}
**CPerson::**~CPerson()
{
cout << "~CPerson" << endl;
}
包含头文件 : 包含头文件的代码
头文件不参加编译的
解决头文件重复包含:
#ifndef _PERSON_H_ //(一般为文件的名字,判断这个宏有没有定义)
#define _PERSON_H_ //(如果没有定义这个宏)
class CPerson
{
public:
CPerson();
~CPerson();
};
#end if //_PERSON_H_
2.只编译一次
#pragma once
class CPerson
{
public:
CPerson();
~CPerson();
};
在.cpp中实现类中的函数,在源文件里实现的时候,一定要有类+::(作用域)+函数名
void CPerson::Show()
{
}
virtual 和 static 在.cpp中要去掉
const在源文件中不能去掉
头文件.cpp
#include "Person.h"
#include <iostream>
using namespace std;
int main()
{
CPerson ps;
ps.Show();
ps.AA();
ps.BB();
cout << ps.m_nAge << endl;
cout << ps.m_nName << endl;
cout << ps.m_nSex << endl;
return 0;
}
person.cpp
#include "Person.h"
#include <iostream>
using namespace std;
int CPerson::m_nSex = 200;
CPerson::CPerson() :m_nName(50)
{
m_nAge = 100;
cout << "CPerson::CPerson" << endl;
}
CPerson::~CPerson()
{
cout << "CPerson::~CPerson" << endl;
}
void CPerson::Show()
{
cout << "CPerson::Show" << endl;
}
void CPerson::AA()
{
cout << "CPerson::AA" << endl;
}
void CPerson::BB() const
{
cout << "CPerson::BB" << endl;
}
void CPerson:: CC()
{
cout << "CPerson::CC" << endl;
}
person.h
#pragma once
class CPerson
{
public:
int m_nAge;
const int m_nName;
static int m_nSex; //初始化在.cpp中
public:
CPerson();
~CPerson();
public:
void Show();
static void AA();
void BB() const;
virtual void CC();
};