从结构指针调用重载操作符函数
Calling overloaded operator function from struct pointer
我在c++中有以下结构体
struct Jam
{
void operator()()
{
cout << "Test";
}
};
我可以像这样调用重载函数:
Jam j;
j();
但是我想知道从指向同一结构的指针调用函数的正确方法是什么。例如:
Jam *j = new Jam;
j->();
我收到错误,告诉我它需要一个函数名。这可能吗?谢谢!
最简单、最清晰的方法是对指针解引用:
(*j)();
或者,您可以将->
语法与函数名(即operator()
)一起使用:
j->operator()();
相关文章:
- 我可以将C 17 Capture lambda ConstexPR转换操作符的结果用作函数指针模板非类型参数吗?
- 当delete操作符释放内存时,我为什么需要析构函数
- 为什么操作符的新函数需要强制转换
- 如何使操作符的左操作数<<一个函数
- 如何重载操作符==外模板类使用友元函数
- 在泛型函数中没有匹配操作符==
- Assert()函数抛出一个错误——操作符有问题
- 删除操作符,它们等同于c++中的析构函数
- 复制构造函数,赋值操作符重载
- 强制转换操作符函数在g++中可以很好地编译,但在其他编译器中不行.为什么
- 通过调用Move赋值操作符实现Move构造函数
- 在类赋值操作符函数中,为什么必须返回*this ?
- 有没有一种方法可以通过函数指针来调用操作符函数?
- 如何为代理类实现相等操作符函数
- 如何为嵌套类编写范围解析操作符函数头
- 类不能包含内部定义枚举的操作符函数
- 从结构指针调用重载操作符函数
- 操作符函数和与之相关的编译错误
- 带有指向对象指针的操作符函数
- 复制和交换技术在赋值操作符函数内部使用复制构造函数