1 /****************************************************************************
2 **
3 ** Copyright (C) 2016 The Qt Company Ltd.
4 ** Contact: https://www.qt.io/licensing/
5 **
6 ** This file is part of the test suite of Qt for Python.
7 **
8 ** $QT_BEGIN_LICENSE:GPL-EXCEPT$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and The Qt Company. For licensing terms
14 ** and conditions see https://www.qt.io/terms-conditions. For further
15 ** information use the contact form at https://www.qt.io/contact-us.
16 **
17 ** GNU General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU
19 ** General Public License version 3 as published by the Free Software
20 ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
21 ** included in the packaging of this file. Please review the following
22 ** information to ensure the GNU General Public License requirements will
23 ** be met: https://www.gnu.org/licenses/gpl-3.0.html.
24 **
25 ** $QT_END_LICENSE$
26 **
27 ****************************************************************************/
28 
29 #include <iostream>
30 #include "abstract.h"
31 #include "objecttype.h"
32 
33 using namespace std;
34 
35 const int Abstract::staticPrimitiveField = 0;
36 
Abstract(int id)37 Abstract::Abstract(int id) : m_id(id)
38 {
39     primitiveField = 123;
40     valueTypeField = Point(12, 34);
41     objectTypeField = nullptr;
42     bitField = 0;
43 }
44 
~Abstract()45 Abstract::~Abstract()
46 {
47 }
48 
49 void
unpureVirtual()50 Abstract::unpureVirtual()
51 {
52 }
53 
54 void
callUnpureVirtual()55 Abstract::callUnpureVirtual()
56 {
57     this->unpureVirtual();
58 }
59 
60 
61 void
callPureVirtual()62 Abstract::callPureVirtual()
63 {
64     this->pureVirtual();
65 }
66 
67 void
show(PrintFormat format)68 Abstract::show(PrintFormat format)
69 {
70     cout << '<';
71     switch(format) {
72         case Short:
73             cout << this;
74             break;
75         case Verbose:
76             cout << "class " << className() << " | cptr: " << this;
77             cout << ", id: " << m_id;
78             break;
79         case OnlyId:
80             cout << "id: " << m_id;
81             break;
82         case ClassNameAndId:
83             cout << className() << " - id: " << m_id;
84             break;
85     }
86     cout << '>';
87 }
88 
callVirtualGettingEnum(PrintFormat p)89 void Abstract::callVirtualGettingEnum(PrintFormat p)
90 {
91     virtualGettingAEnum(p);
92 }
93 
virtualGettingAEnum(Abstract::PrintFormat p)94 void Abstract::virtualGettingAEnum(Abstract::PrintFormat p)
95 {
96 }
97 
98