← Back to Docs

Classes

Every VDX program is organized into classes. A class is the top-level container for all code — variables, functions, and statements.

Syntax

class ClassName {
    // variables, functions, statements
}

Rules

  • Every .vdx file must contain at least one class
  • Class names must start with a letter or underscore
  • Code outside a class is not allowed
  • A file can contain multiple classes — they run in order

Execution order

Inside a class, VDX does two passes:

  1. Register all functions (so you can call them before they appear in code)
  2. Execute all non-function statements top-to-bottom
class App {
    // This works — greet() is registered in pass 1
    greet();

    fn greet() {
        print("hello");
    }
}

Multiple classes

class First {
    print("I run first");
}

class Second {
    print("I run second");
}

Classes as blueprints

Classes can also be used as blueprints for object instantiation with new. See Objects (new).

class Point {
    let x: int = 0;
    let y: int = 0;
}

class Main {
    let p = new Point();
    p.x = 10;
    print(p.x);   // 10
}