我正在设计一个 Buffer 类,其目的是表示一 block 内存。
我的底层缓冲区是 char*
(嗯,实际上是 boost::shared_array<char>
,但这并不重要)。
我一直在决定为我的构造函数选择什么原型(prototype):
我应该去:
Buffer(const void* buf, size_t buflen);
或与:
Buffer(const char* buf, size_t buflen);
还是别的什么?
通常会做什么,为什么?
最佳答案
API 接口(interface)对用户来说更加清晰,如果 buffer 是 void* 类型,而 string 是 char* 类型。比较 memcpy 和 strcpy 函数定义。
关于c++ - void* 或 char* 用于通用缓冲区表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3813138/