指针/参考*&;操作员过载 我是一个新的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
如果我是你,我会怀疑你看到的代码库的质量。如果我是你,我会怀疑你看到的代码库的质量。