自己記述のBufferクラスを使用すると、アクセス違反エラーが発生します。
template<typename T>
class Buffer {
public:
Buffer(T *data, size_t len);
Buffer(size_t len);
size_t len();
operator T*();
T& operator[] (const int x) const {
return this->data[x];
};
private:
T *data;
size_t _len;
};
int main() {
Buffer<char> b("123", 3);
b[0] = 0; // This line causes "Access violation writing location 0x003c8830".
return 0;
}
何故ですか?私は何が間違っているのですか?