gpt4 book ai didi

c++ - 给定指针调用括号重载

转载 作者:可可西里 更新时间:2023-11-01 16:31:10 28 4
gpt4 key购买 nike

我可以使用以下签名重载括号运算符:

char& operator()(const int r, const int c);

它的预期用途是:

// myObj is an object of type MyClass
myObj(2,3) = 'X'
char Y = myObj(2,3);

如我所料。但是,在处理指针时使用括号运算符会变得很复杂。我想这样做:

// pMyObj is a pointer to an object of type MyClass
pMyObj->(2,3) = 'X';
char Y = pMyObj->(2,3);

但是,这样的语法会产生错误 Error: expected a member name(至少在 VisualStudio 中)。

以下内容确实有效,但对我来说似乎令人费解,因为取消引用和括号多于参数。

char X = (*pMyObj)(2,3);

有没有办法使用 -> 运算符来调用 () 重载?

最佳答案

是的,但你不会喜欢它:

pMyObj->operator()(2,3);

关于c++ - 给定指针调用括号重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16723074/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com