//Example 1
const double pie = 3.14; //const object
const double *cptr = &pie; //pointer-to-const to const object
double *ptr = &pie; //ERROR - non-pointer-to-const to const object
//Example 2
double pie = 3.14; //non-const object
const double *cptr = &pie; //non-pointer-to-const to non-const object
double *ptr = &pie; //non-pointer-to-const to non-const object
最初は、非constオブジェクトへのpointer-to-constは許可されていますが、これは、pointer-to-constが非constオブジェクトを変更しないことを意味するためです。
しかし、私はc ++の本で、非constオブジェクトへのpointer-to-constが許可されている理由を読みました。これは、pointer-to-constポインターが、それが指すオブジェクトがconstであるかどうかを実際に知る方法がないため、オブジェクトを処理するためです。 constとしてポイントしますが、同じロジックにより、non-pointer-to-constはconstオブジェクトをnon-constオブジェクトとして扱いますが、コンパイラーはコンパイル時にエラーをスローします。
ここで何かが足りませんか?