如何包含一个包含 class 函数的单独文件
how to include a separate file containing functions for a class
所以我正在为与 arduino 一起使用的硬件制作一个库。在 class 里面有一些需要包含的硬件特定代码。为了提高可读性,我想将硬件特定功能移动到另一个文件
//.h
class myClass(){
public:
myClass();
void controlGPIO();
};
//.cpp
myClass::myClass(){
controlGPIO();
}
#ifdef HARDWAREA
#include "deviceA_hal.h"
#endif
#ifdef HARDWAREB
#include "deviceB_hal.h"
#endif
//deviceA_hal.h HardwareA functions
#include <deviceA_specific_Library>
void myClass::controlGPIO(){
// some code unique to hardwareA
}
//deviceB_hal.h HardwareB functions
#include <deviceB_specific_Library>
void myClass::controlGPIO(){
// some code unique to hardwareB
}
这可能吗?我这样做正确吗?
这将使添加更具体的硬件变得更容易和更清晰。有没有更好的方法>?
常见的是用
做一个.cpp
#if defined(HARDWAREA)
#include "deviceA_hal.h"
#elif defined(HARDWAREB)
#include "deviceB_hal.h"
#endif
void myClass::controlGPIO(){
#if defined(HARDWAREA)
// some code unique to hardwareA
#elif defined(HARDWAREB)
// some code unique to hardwareB
#endif
}
这比两个单独的文件更易于维护
所以我正在为与 arduino 一起使用的硬件制作一个库。在 class 里面有一些需要包含的硬件特定代码。为了提高可读性,我想将硬件特定功能移动到另一个文件
//.h
class myClass(){
public:
myClass();
void controlGPIO();
};
//.cpp
myClass::myClass(){
controlGPIO();
}
#ifdef HARDWAREA
#include "deviceA_hal.h"
#endif
#ifdef HARDWAREB
#include "deviceB_hal.h"
#endif
//deviceA_hal.h HardwareA functions
#include <deviceA_specific_Library>
void myClass::controlGPIO(){
// some code unique to hardwareA
}
//deviceB_hal.h HardwareB functions
#include <deviceB_specific_Library>
void myClass::controlGPIO(){
// some code unique to hardwareB
}
这可能吗?我这样做正确吗?
这将使添加更具体的硬件变得更容易和更清晰。有没有更好的方法>?
常见的是用
做一个.cpp#if defined(HARDWAREA)
#include "deviceA_hal.h"
#elif defined(HARDWAREB)
#include "deviceB_hal.h"
#endif
void myClass::controlGPIO(){
#if defined(HARDWAREA)
// some code unique to hardwareA
#elif defined(HARDWAREB)
// some code unique to hardwareB
#endif
}
这比两个单独的文件更易于维护