C替代宏贴
发布时间:2020-12-16 10:08:29 所属栏目:百科 来源:网络整理
导读:假设我有一系列课程: class Port8Bit{ void Write(uint8_t data); uint8_t Read();};class Port16Bit{ void Write(uint16_t data); uint16_t Read();};//and so on for 32Bit and 64Bit 当我想启动类,而不是为每个类再次编写代码时,我可以使用一个宏: #def
假设我有一系列课程:
class Port8Bit{ void Write(uint8_t data); uint8_t Read(); }; class Port16Bit{ void Write(uint16_t data); uint16_t Read(); }; //and so on for 32Bit and 64Bit 当我想启动类,而不是为每个类再次编写代码时,我可以使用一个宏: #define intiatePort(portSize) { Port##portSize##Bit::Port##portSize##Bit(){ } void Port##portSize##Bit::Write(uint##portSize##_t data){ //write data } uint##portSize##_t Port##portSize##Bit::Read(){ uint##portSize##_t result; //read data return result; } 我对CPP很新,但我读过在大多数情况下使用宏并不是一个好习惯.我想知道,有更好的,更多的CPP方式吗? 解决方法
这就是模板的用途:
template<class DataType> class Port{ void Write(DataType data); DataType Read(); }; using Port8Bit = Port<uint8_t>; using Port16Bit = Port<uint16_t>; // etc... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |