当T是指针类型时,const T的含义是什么?

时间:2013-03-03 04:40:35

标签: c++ templates pointers c++11 const

考虑到:

char* ptr;             // 1) a non-constant pointer to a non-constant char
const char* ptr;       // 2) a non-constant pointer to a constant char
char* const ptr;       // 3) a constant pointer to a non-constant char
const char* const ptr; // 4) a constant pointer to a constant char

当我写:

#include <iostream>

template <class T>
void f(const T ptr) 
{;}

int main(int argc, char* argv[])
{
    char a = 'a';
    f(&a);
    return 0;
}

ptr:2)或3)的类型是什么?

1 个答案:

答案 0 :(得分:4)

T是指向非const char的指针,因此const T是指向非const char的常量指针。