📄 hamfact.cpp
字号:
#include <iostream>
#include <string>
using namespace std ;
class Hamburger
{
public:
// Constructor
Hamburger(const unsigned short usNewNumPickles) :
usNumPickles(usNewNumPickles)
{ }
// Public methods
unsigned short GetNumPickles() const;
private:
// Private member data
unsigned short usNumPickles;
};
unsigned short Hamburger::GetNumPickles() const
{
return usNumPickles;
}
class HamburgerFactory
{
public:
// Constructor
HamburgerFactory() : ulTotalNumHamburgers(0UL) { }
// Public methods
Hamburger* CreateInstance();
// How many hamburgers have been made so far?
unsigned long GetHamburgerTotal() const;
private:
// Private attributes
unsigned long ulTotalNumHamburgers;
};
Hamburger* HamburgerFactory::CreateInstance()
{
ulTotalNumHamburgers++;
return new Hamburger(4);
}
unsigned long HamburgerFactory::GetHamburgerTotal() const
{
return ulTotalNumHamburgers;
}
void main()
{
// Instantiate the factory
HamburgerFactory factHamburgers;
// Create a new hamburger
Hamburger* pHamburger = factHamburgers.CreateInstance();
cout << "New hamburger has "
<< pHamburger->GetNumPickles()
<< " pickles.\n";
// Destroy the hamburger
delete(pHamburger);
// Create and destroy a few more
for (int loop = 0; loop < 7; loop++)
{
pHamburger = factHamburgers.CreateInstance();
delete(pHamburger);
}
// How many hamburgers were created in all?
cout << factHamburgers.GetHamburgerTotal()
<< " hamburgers were created.\n";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -