123456789101112131415161718192021222324252627282930313233343536373839 |
- // { dg-do run }
- extern "C" int printf(const char *, ...);
- class Environment {
- public:
- virtual ~Environment();
- // Static factory method that returns the implementation that provide the
- // appropriate platform-specific instance.
- static Environment* Create();
- // Gets an environment variable's value and stores it in |result|.
- // Returns false if the key is unset.
- virtual bool GetVar(const char* variable_name, char* result) = 0;
- };
- class EnvironmentImpl : public Environment {
- public:
- virtual bool GetVar(const char* variable_name, char* result) {
- return true;
- }
- };
- Environment::~Environment() {}
- // static
- Environment* Environment::Create() {
- return new EnvironmentImpl();
- }
- int main()
- {
- char * null = 0;
- Environment * env = Environment::Create();
- env->GetVar(0, null);
- printf("%p\n", env);
- }
|