Skip to content

Instantly share code, notes, and snippets.

@anhldbk
Last active July 24, 2017 05:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anhldbk/7febe8ea87dceccc3b8772a36b5a3ed7 to your computer and use it in GitHub Desktop.
Save anhldbk/7febe8ea87dceccc3b8772a36b5a3ed7 to your computer and use it in GitHub Desktop.
C++ tricks
#define Data_T(type) template <typename T> type Data<T>
template<typename T>
class Data {
private:
T _data;
public:
Data(T data);
void show();
};
Data_T()::Data(T data) : _data(data) {}
Data_T(void)::show() {
cout << this->_data << endl;
}
@anhldbk
Copy link
Author

anhldbk commented Jul 24, 2017

Function pointer:

class Data{
public:
    void show(){
        cout << "Hello world\n";
    }
};
typedef void (Data::*DataMethod)();

int main(){
    Data d;
    Data* d_ptr = &d;
    DataMethod method = &Data::show;
    (d_ptr->*method)();
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment