c – 我应该同时使用头文件和cpp / source文件吗?
作者:互联网
我有一个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
我没有真正定义偏好……但我确实看到两者都有效.这两种方法都有优缺点吗?
解决方法:
尝试从多个地方调用该代码 – 因此#include多个源文件中的标题 – 您将在第二种方法中看到问题.如果您对同一函数有多个定义,即使它们相同,链接器也不喜欢它.
标签:c,header-files 来源: https://codeday.me/bug/20190903/1797586.html