У меня есть файл Mammal.h, который гласит:
#ifndef MAMMAL_H
#define MAMMAL_H
class Mammal
{
public:
void Speak();
};
#endif
Мой файл CPP выглядит так:
#include "stdafx.h"
#include "Mammal.h"
#include <iostream>
void Mammal::Speak()
{
using namespace std;
cout << "Speaking";
}
И мое использование этого кода видно здесь:
#include "stdafx.h"
#include "Mammal.h"
int main()
{
Mammal *mammal = new Mammal();
mammal->Speak();
}
Однако я мог бы сделать это в заголовочном файле:
#include "stdafx.h"
#include <iostream>
#ifndef MAMMAL_H
#define MAMMAL_H
class Mammal
{
public:
void Speak()
{
using namespace std;
cout << "Speaking";
}
};
#endif
Я действительно не определил предпочтения ... но я вижу, что оба работают. Есть ли преимущества или недостатки любого из этих подходов?