Skip to content

Instantly share code, notes, and snippets.

@frsyuki
Created September 11, 2009 19:01
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 frsyuki/185506 to your computer and use it in GitHub Desktop.
Save frsyuki/185506 to your computer and use it in GitHub Desktop.
#include <iostream>
// header
class Test {
public:
void func();
private:
class util;
friend class util;
int member1;
int member2;
};
// source
class Test::util : public Test {
public:
int benri_func() const;
};
int Test::util::benri_func() const
{
return member1 + member2;
}
void Test::func()
{
member1 = 1;
member2 = 2;
int val = static_cast<util*>(this)->benri_func();
std::cout << val << std::endl; // 3
}
int main(void)
{
Test t;
t.func();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment