codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <iostream> #include <string> using namespace std; class CashSuper { public:double virtual acceptCash(double total); }; class Cashnormal: public CashSuper{ double acceptCash(double total){ return total; } }; class Cashreturn: public CashSuper{ private:int all,returns; public: Cashreturn(int all,int returns){ this->all = all; this->returns = returns; } double acceptCash(double total){ if(total > all) return total - returns; else return total ; } }; class Cashrebate: public CashSuper{ private:double rebate; public: Cashrebate(int rebate){ this->rebate = (rebate+0.0) / 10; } double acceptCash(double total){ return total*rebate ; } }; class Context{ CashSuper *cs; //CashSuper switchs(string cmd){//û±ØÒª.. public: Context(int cmd){ switch(cmd){ case 0: cs = new Cashnormal(); break; case 1: cs = new Cashrebate(8); break; case 2: cs = new Cashreturn(300,50); break; } } double getresult(double total){ return cs->acceptCash(total); } }; int main(){ int cmd; double total; cin >> cmd >> total; Context *answer = new Context(cmd); cout << answer->getresult(total); }
Private
[
?
]
Run code
Submit