aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/tests/libsample/abstract.cpp
blob: 0d67d86301371547f1b12627222d583628a62c5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

#include "abstract.h"

#include <iostream>

const int Abstract::staticPrimitiveField = 0;

Abstract::Abstract(int id) noexcept : m_id(id)
{
    bitField = 0;
}

Abstract::~Abstract() = default;

void Abstract::unpureVirtual()
{
}

void Abstract::callUnpureVirtual()
{
    this->unpureVirtual();
}

void Abstract::callPureVirtual()
{
    this->pureVirtual();
}

void Abstract::show(PrintFormat format) const
{
    std::cout << '<';
    switch(format) {
    case Short:
        std::cout << this;
        break;
    case Verbose:
        std::cout << "class " << className() << " | cptr: " << this
                  << ", id: " << m_id;
        break;
    case OnlyId:
        std::cout << "id: " << m_id;
        break;
    case ClassNameAndId:
        std::cout << className() << " - id: " << m_id;
        break;
    }
    std::cout << '>';
}

void Abstract::virtualWithOutParameter(int &x) const
{
    x = 42;
}

int Abstract::callVirtualWithOutParameter() const
{
    int x;
    virtualWithOutParameter(x);
    return x;
}

void Abstract::callVirtualGettingEnum(PrintFormat p)
{
    virtualGettingAEnum(p);
}

void Abstract::virtualGettingAEnum(Abstract::PrintFormat)
{
}