Classes

This example demonstrates a small C++ class S with:

  • A data member and a method

  • A free function: f using S

  • The C++ printing automatically being used in Python.

class1.cpp
#include <c2py/c2py.hpp>

struct S {
  int i;
  S(int i) : i{i} {}
  int m() const { return i + 2; }
};

// A function using S
int f(S const &s) { return s.i; }

// make S printable in C++
std::ostream &operator<<(std::ostream &out, S const &s) { return out << "S struct with i=" << s.i; }

In Python, we have

>>> import class1 as M
>>> s = M.S(2)
>>> s.i
2
>>> s.m()
4
>>> print(s)
S struct with i=2
>>> M.f(s)
2