指针/参考*&;操作员过载 我是一个新的C++语言,浏览一些源代码,我发现了一个类中的代码。 SDL_Surface *m_srf; //... operator SDL_Surface*&() { return m_srf; }

指针/参考*&;操作员过载 我是一个新的C++语言,浏览一些源代码,我发现了一个类中的代码。 SDL_Surface *m_srf; //... operator SDL_Surface*&() { return m_srf; },c++,pointers,reference,overloading,operator-keyword,C++,Pointers,Reference,Overloading,Operator Keyword,它重载指针(*)和引用或内存地址(&)运算符?它是一个转换运算符。它执行到类型SDL\u Surface*&,id est,指向SDL\u Surface的指针的引用类型的转换,这是一个转换运算符。它执行到类型SDL\u Surface*&,id est的转换,指向SDL\u Surface的指针的引用类型它是将对象转换为指向SDL\u Surface的指针的引用的转换 它是一种转换,将对象转换为指向SDL_曲面指针的引用 这是一个转换运算符:名为Class::operator Type()的成

它重载指针(*)和引用或内存地址(&)运算符?

它是一个转换运算符。它执行到类型
SDL\u Surface*&
,id est,指向
SDL\u Surface
的指针的引用类型的转换,这是一个转换运算符。它执行到类型
SDL\u Surface*&
,id est的转换,指向
SDL\u Surface的指针的引用类型

它是将对象转换为指向SDL\u Surface的指针的引用的转换

它是一种转换,将对象转换为指向SDL_曲面指针的引用

这是一个转换运算符:名为
Class::operator Type()
的成员运算符可用于将
Class
类型的对象转换为
类型的对象

在这种情况下,它将转换为指向
SDL\u曲面的指针的引用。因此,您可以在需要该类型的任何位置使用该类:

void set(SDL_Surface*& s) {s = whatever;}  // needs a reference
void do_something(SDL_Surface*);           // needs a pointer

my_class thingy;
set(thingy);          // OK - sets thingy.m_srf
do_something(thingy); // OK - passes thingy.m_srf to the function
这是一个转换运算符:名为
Class::operator Type()
的成员运算符可用于将
Class
类型的对象转换为
类型的对象

在这种情况下,它将转换为指向
SDL\u曲面的指针的引用。因此,您可以在需要该类型的任何位置使用该类:

void set(SDL_Surface*& s) {s = whatever;}  // needs a reference
void do_something(SDL_Surface*);           // needs a pointer

my_class thingy;
set(thingy);          // OK - sets thingy.m_srf
do_something(thingy); // OK - passes thingy.m_srf to the function

如果我是你,我会怀疑你看到的代码库的质量。如果我是你,我会怀疑你看到的代码库的质量。