0

我不确定,但我想我曾经见过一个看起来像这样的方法签名(在构造函数中):

class Buffer {
    Buffer(char_with_size *data) { ... };
    Buffer(char *data, size_t len) { ... };
};

在第一个构造函数调用中,可以传递一个数组/指针参数,编译器会自动知道它的大小。所以,我总是知道传递的 char 缓冲区的大小。

有谁知道这是否真的存在于 c++ 中?

4

2 回答 2

4

只有模板版本可能有意义:

Buffer(char * data, std::size_t len) { /* ... */ }

template <std::size_t N> Buffer(char (&data)[N]) : Buffer(data, N) { }

(请注意,委托构造函数是新的,还没有得到广泛支持。为了举例,我在这里只使用一个。)

于 2012-05-30T16:26:50.267 回答
0

当然,Buffer(std::vector<char> data)。(IOW,不要使用char*。)

于 2012-05-30T16:26:57.373 回答