File: foo.h

package info (click to toggle)
cableswig 0.1.0%2Bcvs20100501-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 16,068 kB
  • ctags: 10,732
  • sloc: cpp: 34,106; ansic: 32,676; yacc: 3,999; makefile: 3,791; python: 2,387; ruby: 2,063; lisp: 1,841; java: 1,817; tcl: 1,097; php: 908; ml: 804; perl: 686; cs: 206; sh: 155
file content (21 lines) | stat: -rw-r--r-- 361 bytes parent folder | download | duplicates (24)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "base.h"

template<class T> class Foo : public Base<T> {
 public:
  Foo() { }
  ~Foo() { }
  virtual void A() { 
    printf("I'm Foo::A\n");
  }
  void B() {
    printf("I'm Foo::B\n");
  }
  virtual Base<T> *toBase() {
    return static_cast<Base<T> *>(this);
  }
  static Foo<T> *fromBase(Base<T> *b) {
    return dynamic_cast<Foo<T> *>(b);
  }
};