pypy / pypy / doc / cppyy_example.rst

// File: example.h:

#include <iostream>
#include <vector>

class AbstractClass {
public:
    virtual ~AbstractClass() {}
    virtual void abstract_method() = 0;
};

class ConcreteClass : AbstractClass {
public:
    ConcreteClass(int n=42) : m_int(n) {}
    ~ConcreteClass() {}

    virtual void abstract_method() {
        std::cout << "called concrete method" << std::endl;
    }

    void array_method(int* ad, int size) {
        for (int i=0; i < size; ++i)
            std::cout << ad[i] << ' ';
        std::cout << std::endl;
    }

    void array_method(double* ad, int size) {
        for (int i=0; i < size; ++i)
            std::cout << ad[i] << ' ';
        std::cout << std::endl;
    }

    AbstractClass* show_autocast() {
        return this;
    }

    operator const char*() {
        return "Hello operator const char*!";
    }

public:
    int m_int;
};

namespace Namespace {

   class ConcreteClass {
   public:
      class NestedClass {
      public:
         std::vector<int> m_v;
      };

   };

} // namespace Namespace
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.