Pointers 将常量指针声明为int? 在C++中,我们有以下的内容: int* p1; // pointer to int const int* p2; // pointer to constant int int* const p3; // constant pointer to int const int* const p4; // constant pointer to constant int
在D中:Pointers 将常量指针声明为int? 在C++中,我们有以下的内容: int* p1; // pointer to int const int* p2; // pointer to constant int int* const p3; // constant pointer to int const int* const p4; // constant pointer to constant int,pointers,integer,constants,d,Pointers,Integer,Constants,D,在D中: int* p1; // pointer to int const(int)* p2; // pointer to constant int ?? ?? ?? // constant pointer to int const(int*) p4; // constant pointer to constant int 指向int的常量指针的语法是什么?我想你可以模拟它: struct Ptr(T) { T
int* p1; // pointer to int
const(int)* p2; // pointer to constant int
?? ?? ?? // constant pointer to int
const(int*) p4; // constant pointer to constant int
指向int的
常量指针的语法是什么?我想你可以模拟它:
struct Ptr(T)
{
T* _val;
this(T* nval) const
{
_val = nval;
}
@property T* opCall() const
{
return cast(T*)_val;
}
alias opCall this;
}
void main()
{
int x = 1;
int y = 2;
const Ptr!int ptrInt = &x;
assert(*ptrInt == 1);
*ptrInt = y; // ok
assert(*ptrInt == 2);
assert(x == 2);
ptrInt = &y; // won't compile, good.
}
也不是C++风格的tail const(在同一页上)。