如何使一元和课外超载?
How to overload unary & outside class?
您可以在类中重载一元&
运算符,如下所示:
struct X
{
void* operator &()
{
return this;
}
};
以便它返回一个地址。您将如何在类之外重载它:
struct X
{
};
void* operator &(const X& x)
{
//how?
}
获取参数的地址将导致无限递归。
在 C++11 中,有template< class T > T* std::addressof(T& arg)
.
标准::地址
您还可以从Boost Utility获得与C++03相同的功能
相关文章:
- C++,您能否设计一种数据结构,将指针保存在连续内存中并且不会使它们失效?
- 如何格式化我的文本文件以使其不会一遍又一遍地重复同一行?
- 花括号使循环运行一次?
- c++ 是否提供了一种使整个结构常量(不可修改)的方法?
- 是否有一种方法可以在超载运算符函数中接触默认运算符函数
- 一个人如何将QT(C )UI分为多个小部件子类,并使其显示与同一类中的所有窗口
- 一种安全、符合标准的方法,使类模板专用化仅在实例化时才无法使用"static_assert"进行编译
- 使操作员特定于超载上下文
- 最简单的方法使多个指针一次指向同一位置,一次只处理2个位置
- 我如何使一行代码可以选择,但在已经选择过一次后不重新选择
- 仅当捕获组最后一次出现时,才使字符成为可选字符
- 使带有循环的同一线程不会一次又一次地获得相同的互斥锁而不休眠
- 是否有一种有效的,适当的方法将非常大的公共班级枚举放在利用它们的公共方法之下,以使代码更加干净
- 有没有一种技术可以使虚函数在所有派生类中强制重写?
- C - 是否有一种方法可以超载指定的初始化器
- 有没有一种方法可以使全局函数/静态成员函数一次可呼出
- 是否有一种方法可以使此C 14递归模板在C 17中短
- 如何仅使输出打印一次
- 如何使一种类型的STL对只占用另一种类型的空间"empty struct"?
- C :如何使一组派生的类能够访问一个类的私人成员