sure you can in C++, just like that: struct MyStruct { char *s; operator float* ( ) { return s;} operator const float*( ) const { return s; } }; so you can do something like this: MyFunc(char * s) { } MyStruct myStruct; MyFunc(myStruct);