// PrivateConstrctor.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
class CBase
{
protected:
  CBase()
  {
	  printf("CBase()\n");

  }
};

class CDerived:public CBase
{
private:
  CDerived()
  {
	  printf("CDerived\n");

  }
  int m1;
  int m2;

public:
  static CDerived* NewInstance()
  {
	  return new CDerived();
  }
  int getset1(bool get,int i=0)
  {
	  if(get)
		  return m1;
	  else
		  return (m1=i);

  }
  int getset2(bool get,int i=0)
  {
	  if(get)
		  return m2;
	  else
		  return (m2=i);

  }
};

int main(int argc, char* argv[])
{
	CDerived* objD=CDerived::NewInstance();
	objD->getset1(false,1);
	objD->getset2(false,2);
	printf("%d,%d\n",objD->getset1(true),objD->getset2(true));

	return 0;
}
/*
CBase()
CDerived
1,2
Press any key to continue
*/