"new (p) T()"的用法
从p指向的空间中分配T类型的空间。
如:
int *p=new int[3];
char *c=new (p) char;//从p指向的空间中分配出一个char类型的空间给c
这样就从p指向的空间中分配出一个char类型的空间给c。
"operator T(){ }"的用法
类型转换运算符重载。当类型被隐式或显示转换时会被调用。
如:
class A{
template<typename T>
operator T(){
return static_cast<T>(-1);
}
}
int main(){
A test;
int i=test;//test对象类型转换为int,会调用operator T()
cout<<i<<endl;
}
此时i的值为-1.
网友评论