home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
scase.zip
/
SCASE.Z
/
DOC00000.05C
< prev
next >
Wrap
Text File
|
1994-12-28
|
57KB
|
3,100 lines
A+0038757529
+0000000004
+0000000031
+0000000005
scase+0000000000
+0000000019
Booch Class Diagram+0000000001
1+0000000000
+0000000000
+0000000007
nbhatia+0000000000
MQLclObjSortedCol 4 8 1 -1 -1 -1 -1 0 0 4
MQLclObjPtr 0 8 1 -1 -1 -1 -1 1 0 0
MQLclObjMngr 0 12 1 -1 -1 -1 0 2 0 0
MQLclEdge 36 52 4 -1 -1 -1 -1 3 0 4
MQLclNode 36 41 1 -1 -1 -1 -1 7 1 0
MQLclObj 4 36 3 -1 -1 -1 -1 8 2 4
MQShpAddr 0 12 1 -1 -1 -1 -1 11 3 0
MQTimer 4 22 1 -1 -1 -1 -1 12 3 4
MQStringOnList 0 8 1 -1 -1 -1 -1 13 3 0
MQPixManager 0 4 1 -1 -1 -1 -1 14 3 0
MQPixResource 0 14 2 -1 -1 -1 -1 15 3 0
MQPixmap 0 6 0 -1 -1 -1 -1 17 4 0
MQText 0 6 1 -1 -1 -1 -1 17 4 0
MQTextBlkLine 8 12 1 -1 -1 -1 -1 18 4 4
MQTextLine 4 8 1 -1 -1 -1 -1 19 5 4
MQDrawingSpec 0 30 0 -1 -1 -1 -1 20 5 0
MQEventHandler 4 24 3 -1 -1 -1 -1 20 5 4
MQRsrcMngr 0 4 1 -1 -1 -1 0 23 5 0
MQObjRecData 16 28 2 -1 -1 -1 -1 24 5 4
MQDBManager 0 8 1 -1 -1 -1 -1 26 5 0
MQDBEnv 4 8 1 -1 -1 -1 -1 27 5 4
MQTextTool 0 4 1 -1 -1 -1 -1 28 5 0
MQTextToolData 0 18 0 -1 -1 -1 -1 29 5 0
MQSolidTool 0 4 1 -1 -1 -1 -1 29 5 0
MQSolidToolData 0 22 0 -1 -1 -1 -1 30 5 0
MQLineTool 0 4 1 -1 -1 -1 -1 30 5 0
MQLineToolData 0 16 0 -1 -1 -1 -1 31 5 0
MQWRect 0 16 0 -1 -1 -1 -1 31 5 0
MQWPoint 0 8 0 -1 -1 -1 -1 31 5 0
MQIndexedCol 4 24 1 -1 -1 -1 -1 31 5 4
MQItemOnCol 4 20 2 -1 -1 -1 -1 32 5 4
MQFstPgonShape 0 60 0 -1 -1 -1 -1 34 5 4
MQEdge 4 20 4 -1 -1 -1 -1 34 6 4
MQNode 4 8 1 -1 -1 -1 -1 38 6 4
MQCompoundShape 0 92 0 -1 -1 -1 -1 39 6 4
MQPolygonShape 0 68 0 -1 -1 -1 -1 39 10 4
MQPolyLineShape 0 68 0 -1 -1 -1 -1 39 12 4
MQPolyPntShape 40 64 1 -1 -1 -1 -1 39 14 4
MQWPointOnList 8 12 1 -1 -1 -1 -1 40 16 0
MQLineShape 0 62 0 -1 -1 -1 -1 41 17 4
MQPixShape 0 74 0 -1 -1 -1 -1 41 21 4
MQLabel 0 82 0 -1 -1 -1 -1 41 24 4
MQTextShape 0 82 0 -1 -1 -1 -1 41 25 4
MQArcShape 0 76 0 -1 -1 -1 -1 41 29 4
MQPieShape 0 76 0 -1 -1 -1 -1 41 30 4
MQCircleShape 0 60 0 -1 -1 -1 -1 41 31 4
MQOvalShape 0 60 0 -1 -1 -1 -1 41 32 4
MQRoundRectShape 0 64 0 -1 -1 -1 -1 41 33 4
MQSquareShape 0 60 0 -1 -1 -1 -1 41 34 4
MQRectShape 0 60 0 -1 -1 -1 -1 41 35 4
MQSldRectShape 0 60 0 -1 -1 -1 -1 41 36 4
MQAbsRectShape 0 56 0 -1 -1 -1 -1 41 38 4
MQShapeCollection 0 20 1 -1 -1 -1 -1 41 40 0
MQShapeArray 0 4 1 -1 -1 -1 0 42 40 0
MQShape 4 40 6 -1 -1 -1 -1 43 40 4
MQDrawCanvas 133 143 1 -1 -1 -1 -1 49 40 4
MQZoomWindow 133 309 1 -1 -1 -1 -1 50 40 4
MQPaletteItem 74 84 1 -1 -1 -1 -1 51 42 4
MQTpLvlPaletteWindow 189 209 2 -1 -1 -1 -1 52 43 4
MQPltMouseEvent 0 20 2 -1 -1 -1 -1 54 44 0
MQPaletteWindow 137 189 2 -1 -1 -1 -1 56 44 4
MQListBox 0 171 0 -1 -1 -1 -1 58 45 4
MQBchNoteShp 0 76 0 -1 -1 -1 -1 58 46 4
MQBchCompartment 0 82 0 -1 -1 -1 -1 58 49 4
MQBchPropShp 0 61 0 -1 -1 -1 -1 58 50 4
MQBchDataFlowShp 0 64 0 -1 -1 -1 -1 58 51 4
MQBchMsgShp 0 66 0 -1 -1 -1 -1 58 52 4
MQBchSelfLinkShp 0 97 0 -1 -1 -1 -1 58 53 4
MQBchLinkShp 0 90 0 -1 -1 -1 -1 58 57 4
MQBchObjShp 0 76 0 -1 -1 -1 -1 58 59 4
MQBchCatShp 0 80 0 -1 -1 -1 -1 58 62 4
MQBchCatSpec 0 53 0 -1 -1 -1 -1 58 64 4
MQBchClsRelShp 0 96 0 -1 -1 -1 -1 58 66 4
MQBchClsRelSpec 0 140 0 -1 -1 -1 -1 58 68 4
MQBchClsShp 0 98 0 -1 -1 -1 -1 58 79 4
MQBchClsSortedCol 0 8 0 -1 -1 -1 -1 58 83 4
MQBchClsSpec 0 127 0 -1 -1 -1 -1 58 84 4
MQBchClsOpCol 0 6 1 -1 -1 -1 -1 58 95 0
MQBchClsOp 0 62 1 -1 -1 -1 -1 59 95 0
MQBchClsAttrCol 0 6 1 -1 -1 -1 -1 60 101 0
MQBchClsAttr 0 62 1 -1 -1 -1 -1 61 101 0
ZZendMark -1 -1 -1 -1 -1 -1 -1 62 107 0
aZZcMQLclObjSortedColOrg[1
aZZsMQLclObjSortedColOrg[1
AZZaMQLclObjHashTbl[1
aZZsMQLclGraph[1
aZZrMQLclGraph[1
aZZyMQLclGraph[1
aZZxMQLclGraph[1
aZZeMQLclGraph[1
aZZfMQLclObj2HashTbl[1
aZZfMQLclObjHashTbl[1
aZZcMQShpAddrCol[1
aZZsMQShpAddrCol[1
aZZfMQTimerList[1
aZZfMQStringQ[1
aZZcMQPixCol[1
aZZbMQPixCol[1
aZZfMQPixCol[1
aZZcMQTextLineCol[1
aZZsMQTextLineCol[1
aZZnMQTextLineBuf[1
aZZsMQEhTree[1
aZZcMQEhTree[1
aZZpMQEhTree[1
AZZaMQRsrcHashTbl[1
aZZfMQRsrc2HashTbl[1
aZZfMQRsrcHashTbl[1
aZZcMQDBEnvCol[1
aZZsMQDBEnvCol[1
aZZfMQTxtTlData[1
aZZfMQSldTlData[1
aZZfMQLnTlData[1
aZZcMQIndexedCollect[1
aZZbMQIndexedCollect[1
aZZfMQIndexedCollect[1
aZZsMQGraph[1
aZZrMQGraph[1
aZZyMQGraph[1
aZZxMQGraph[1
aZZeMQGraph[1
aZZcMQPolyPntList[1
aZZsMQPolyPntList[1
aZZcMQShapeCollectionOrg[1
AZZaMQShpArr[1
aZZfMQShapeCollectionOrg[1
aZZbMQShapeCollectionOrg[1
aZZsMQShpTree[1
aZZcMQShpTree[1
aZZpMQShapeCollectionOrg[1
aZZpMQShpTree[1
aZZbMQZoomLink[1
aZZfMQZoomLink[1
aZZfMQPltItemCol[1
aZZcMQPltCol[1
aZZcMQPltEvntQ[1
aZZbMQPltEvntQ[1
aZZfMQPltEvntQ[1
aZZbMQPltCol[1
aZZfMQPltCol[1
aZZcMQBchClsOps[1
aZZsMQBchClsOps[1
aZZcMQBchClsAttrs[1
aZZsMQBchClsAttrs[1
5 4 0 ZZinherit
5 4 0 ZZinherit
12 30 1 Name
11 8 1 Pixmap
14 4 0 ZZinherit
50 0 0 ZZinherit
54 4 0 ZZinherit
27 40 1 DrawRect
27 56 1 InvalidateRect
52 72 1 ShpCol
37 40 0 ZZinherit
23 64 1 SldTl
37 40 0 ZZinherit
25 64 1 LnTl
54 4 0 ZZinherit
27 48 1 DrawRect
28 0 0 ZZinherit
54 4 0 ZZinherit
25 40 1 LnTl
28 44 1 Origin
28 52 1 End
51 0 0 ZZinherit
11 56 1 Pixmap
28 62 1 Location
42 0 0 ZZinherit
51 0 0 ZZinherit
12 56 1 Txt
21 62 1 TxtTl
28 66 1 Location
44 0 0 ZZinherit
46 0 0 ZZinherit
46 0 0 ZZinherit
50 0 0 ZZinherit
50 0 0 ZZinherit
49 0 0 ZZinherit
50 0 0 ZZinherit
51 0 0 ZZinherit
23 56 1 SldTl
54 4 0 ZZinherit
27 40 1 MathRect
42 137 1 Display
40 219 1 ZoomPix
40 0 0 ZZinherit
60 137 0 ZZinherit
7 157 1 PltTimer
29 4 0 ZZinherit
31 0 0 ZZinherit
28 60 1 Origin
28 68 1 End
41 0 0 ZZinherit
31 0 0 ZZinherit
39 0 0 ZZinherit
39 0 0 ZZinherit
32 4 0 ZZinherit
46 20 0 ZZinherit
28 81 1 StartPt
28 89 1 StopPt
32 4 0 ZZinherit
39 20 0 ZZinherit
33 4 0 ZZinherit
31 8 0 ZZinherit
12 68 1 Def
33 4 0 ZZinherit
49 8 0 ZZinherit
4 36 0 ZZinherit
12 45 1 Def
32 4 0 ZZinherit
39 20 0 ZZinherit
3 36 0 ZZinherit
12 54 1 Def
14 64 1 SrcCard
14 72 1 TrgCard
14 80 1 SrcRoles
14 88 1 TrgRoles
14 96 1 SrcKey
14 104 1 TrgKey
14 112 1 SrcCons
14 120 1 TrgCons
14 136 1 UserImplementation
33 4 0 ZZinherit
31 8 0 ZZinherit
28 68 1 Origin
28 76 1 End
0 4 0 ZZinherit
4 36 0 ZZinherit
12 43 1 Def
12 49 1 Resp
79 55 1 Attributes
77 61 1 Operations
14 71 1 Cons
14 79 1 Param
14 87 1 Card
14 95 1 SpCmpl
14 103 1 HdrFile
14 111 1 BodyFile
14 8 1 Name
12 12 1 Def
14 22 1 RetClass
14 30 1 Args
14 38 1 Qual
14 58 1 UserImplementation
14 8 1 Name
12 12 1 Def
14 22 1 Class
14 30 1 Qual
14 40 1 DefExpr
14 58 1 UserImplementation
-1 -1 -1 ZZendMark
162992418 15 30 1
40 6.000000 4.500000 1 13 0.100000
162994250 52 20 1
1332152118
32
162989814 52 20 1
635371606
21
155653936 -1 1 1
1348934744 -1 1 1
1348931504 -1 1 1
155650384 -1 1 1
155648440 -1 1 1
155655148 -1 1 1
1348935368 -1 1 1
155656120 -1 1 1
155649472 -1 1 1
1348931324 -1 1 1
155648512 -1 1 1
155650552 -1 1 1
155648644 -1 1 1
1348931924 -1 1 1
1348934492 -1 1 1
1348934324 -1 1 1
155652796 -1 1 1
1348934636 -1 2 1
}
1348934480 -1 1 1
1348934912 -1 1 1
1348934984 -1 2 1
{
1348935224 -1 1 1
155655772 -1 1 1
1348934684 -1 1 1
1348935620 -1 1 1
1348935164 -1 1 1
1348932164 -1 2 1
}
1348933376 -1 1 1
1348935464 -1 1 1
1348934720 -1 1 1
1348935440 -1 1 1
1348934960 -1 1 1
1348934504 -1 1 1
1348935656 -1 2 1
{
155654908 -1 1 1
1348934660 -1 1 1
1348935512 -1 1 1
1348933184 -1 2 1
}
1348935428 -1 1 1
1348934804 -1 1 1
155654056 -1 1 1
1348932836 -1 1 1
155651716 -1 1 1
1348930460 -1 1 1
1348934516 -1 2 1
{
155653276 -1 1 1
155654248 -1 1 1
155654860 -1 1 1
155655028 -1 1 1
155654884 13 12 1
155654884
155654884 14 8 1
162993166
1482097366 22 18 1
1 8 8 12 50331903 201326591 1
1482096758 -1 53 1
S-CASE allows you to generate C++ code automatically
155655196 13 12 1
1348935248
155655196 14 8 1
162994678
155648056 13 12 1
155650828
155648056 14 8 1
157751654
1108283974 -1 53 1
8) Turn on the "Generate Clean Code" option from the
155653564 13 12 1
155655940
155653564 14 8 1
1108282674
1336346206 42 82 1
28 0 0
1336346206 51 56 1
1336346206 54 40 1
162990358 1482104222 0 0 162994250 0
0 0
1336346246 27 16 1
21249 916 40323 32998
1336346262 12 6 1
1348933640
13
1336346268 21 4 1
641144094
1336346272 28 8 1
21249 916
1336345962 -1 53 1
from your system's model. It also allows you to keep
1348935248 13 12 1
1348934096
1348935248 14 8 1
162990590
1482102902 42 82 1
28 0 0
1482102902 51 56 1
1482102902 54 40 1
1332152018 1336345722 0 0 162994250 0
0 0
1482102942 27 16 1
453646 1084 482632 35750
1482102958 12 6 1
155655544
20
1482102964 21 4 1
641144094
1482102968 28 8 1
453646 1084
155650828 13 12 1
155656144
155650828 14 8 1
157751526
1108285238 -1 50 1
Options menu. Regenerate the code for one or more
155655940 13 12 1
155652928
155655940 14 8 1
1108279374
162992650 22 18 1
1 8 8 9 117440512 201326591 0
162993166 -1 43 1
- Open the class diagram "Shape Hierarchy"
162994678 -1 53 1
your model in sync with your code. This section is a
1348934096 13 12 1
1348933316
1348934096 14 8 1
1348934744
157751654 -1 34 1
will preserve the modified order.
155656144 13 12 1
155652232
155656144 14 8 1
157751730
1108282674 -1 53 1
classes. Notice that the code generator now produces
155652928 13 12 1
155648284
155652928 14 8 1
1108283330
162990746 62 76 1
162990746 31 60 1
162990746 50 60 1
162990746 51 56 1
162990746 54 40 1
162988750 641141122 0 1099366454 162989814 0
0 0
162990786 27 16 1
-2500 -5000 2500 5000
162990802 23 4 1
162989586
162990806 28 8 1
0 0
162990814 28 8 1
0 0
1348933640 13 12 1
1348932896
1348933640 14 8 1
162989882
162990590 -1 52 1
quick tutorial on C++ code generation using S-CASE.
1348933316 13 12 1
1348933352
1348933316 14 8 1
162993646
155655544 13 12 1
155651068
155655544 14 8 1
1336346046
157751526 -1 64 1
3) Note that "Has" relationships in the class diagram appear in
155652232 13 12 1
155649244
155652232 14 8 1
157751070
1108279374 -1 52 1
two additional files for each class with extensions
155648284 13 12 1
155648296
155648284 14 8 1
1108281470
162990442 24 22 1
1 1 2 0 117440512 2 201326591 201326591
162990358 42 82 1
28 0 0
162990358 51 56 1
162990358 54 40 1
162991674 1336346206 0 0 162994250 0
0 0
162990398 27 16 1
48333 916 81567 31248
162990414 12 6 1
155653384
23
162990420 21 4 1
641144094
162990424 28 8 1
48333 916
1348932896 13 12 1
1348932644
1348932896 14 8 1
162993458
162994250 52 20 1
1332152118
32
1348933352 13 12 1
155652964
1348933352 14 8 1
162991878
1336345722 42 82 1
28 0 0
1336345722 51 56 1
1336345722 54 40 1
1482102902 162990110 0 0 162994250 0
0 0
1336345762 27 16 1
451046 916 453711 15915
1336345778 12 6 1
1348933328
1
1336345784 21 4 1
162994434
1336345788 28 8 1
451046 916
155651068 13 12 1
155650840
155651068 14 8 1
1336345102
157751730 -1 62 1
the attribute list of the associated class specification. Try
155649244 13 12 1
155649484
155649244 14 8 1
157745582
1108283330 -1 51 1
".hcl" and ".ccl". These files are the same as the
155648296 13 12 1
155648380
155648296 14 8 1
1108283690
162993982 64 61 1
F
162993982 31 60 1
162993982 50 60 1
162993982 51 56 1
162993982 54 40 1
1482098986 1322189382 0 0 162989814 0
0 0
162994022 27 16 1
-1000 -1000 1000 1000
162994038 23 4 1
157751138
162989882 -1 20 1
diagram to open it.
1348932644 13 12 1
1348931168
1348932644 14 8 1
1348931504
162993646 -1 59 1
Please follow the steps in this tutorial sequentially. You
1336346046 -1 35 1
between the header and body files.
155650840 13 12 1
155650636
155650840 14 8 1
1336344802
157751070 -1 65 1
changing the order of attributes and relations through the class
155649484 13 12 1
155654800
155649484 14 8 1
157751286
1108281470 -1 57 1
generated ".h" and ".cc" files except that the "-MQBeg-"
155648380 13 12 1
155653024
155648380 14 8 1
1108286006
155653384 13 12 1
155650540
155653384 14 8 1
1332155974
162993458 -1 55 1
a) First choose Project Manager from the Project menu.
1348931168 13 12 1
1348934012
1348931168 14 8 1
1099371638
162991878 -1 57 1
may want to print these instructions for easy reference.
1348933328 13 12 1
1348933328
1348933328 14 8 1
162989838
162994434 22 18 1
1 8 8 12 50331903 201326591 1
1336345102 -1 61 1
Now that you know the basic concepts behind code generation,
155650636 13 12 1
155650144
155650636 14 8 1
155650384
157745582 -1 62 1
specification dialog box. See how the code generator reflects
155654800 13 12 1
155652256
155654800 14 8 1
155648440
1108283690 -1 42 1
and "-MQEnd-" comments are removed. These
155653024 13 12 1
155652976
155653024 14 8 1
1108287258
162989586 24 22 1
1 1 2 0 117440512 2 201326591 201326591
162991674 42 82 1
28 0 0
162991674 51 56 1
162991674 54 40 1
1322195934 162990358 0 0 162994250 0
0 0
162991714 27 16 1
45748 916 48413 16915
162991730 12 6 1
1348933544
1
162991736 21 4 1
157745194
162991740 28 8 1
45748 916
155650540 13 12 1
155650252
155650540 14 8 1
1332156350
162989814 52 20 1
635371606
21
1348934012 13 12 1
1348931180
1348934012 14 8 1
157751594
162990110 42 82 1
28 0 0
162990110 51 56 1
162990110 54 40 1
1336345722 162991218 0 0 162994250 0
0 0
162990150 27 16 1
394059 917 401805 56332
162990166 12 6 1
1348931216
5
162990172 21 4 1
162993398
162990176 28 8 1
394059 917
1336344802 -1 60 1
it is time explore on your own. Here are a few suggestions:
155650144 13 12 1
155649904
155650144 14 8 1
1336345658
157751286 -1 38 1
these changes into your source files.
155652256 13 12 1
155655112
155652256 14 8 1
157753278
1108286006 -1 58 1
"clean code" files are lot more readable. However, if you
155652976 13 12 1
155650648
155652976 14 8 1
1108284806
162988742 74 98 1
0 0 0
162988742 33 8 1
0
162988750 31 60 1
162988750 50 60 1
162988750 51 56 1
162988750 54 40 1
1107230826 162990746 0 1107235130 162989814 0
0 0
162988790 27 16 1
-5000 -5000 2276 5000
162988806 23 4 1
1107231034
162988810 28 8 1
0 0
162988818 28 8 1
0 0
1099366454 41 82 1
1099366454 42 82 1
28 0 0
1099366454 51 56 1
1099366454 54 40 1
0 0 1099366454 0 0 162990746
0 30001
1099366494 27 16 1
-2500 -4000 2500 5000
1099366510 12 6 1
0
0
1099366516 21 4 1
1107235566
1099366520 28 8 1
-2500 -4000
1332155974 -1 36 1
||| = implementation access
155650252 13 12 1
155650036
155650252 14 8 1
1332152410
1099371638 -1 56 1
b) Make sure that the category "4. C++ Code Generation"
1348931180 13 12 1
1348934108
1348931180 14 8 1
1322194866
162989838 -1 22 1
- Other things to try
1332152118 42 82 1
28 0 0
1332152118 51 56 1
1332152118 54 40 1
1108286910 1332150958 0 0 162994250 0
0 0
1332152158 27 16 1
544418 1166 573404 35082
1332152174 12 6 1
155648416
20
1332152180 21 4 1
641144094
1332152184 28 8 1
544418 1166
155649904 13 12 1
155649784
155649904 14 8 1
1336348770
635371598 70 80 1
0 0
635371598 33 8 1
0
635371606 49 60 1
635371606 50 60 1
635371606 51 56 1
635371606 54 40 1
1337393846 1337393266 0 1332157682 162989814 0
0 0
635371646 27 16 1
-2500 -5000 2500 5000
635371662 23 4 1
162988494
155655112 13 12 1
155653036
155655112 14 8 1
157751466
1108287258 -1 59 1
edit them, the code generator will NOT be able to preserve
155650648 13 12 1
155655244
155650648 14 8 1
155655148
157751138 24 22 1
1 1 2 0 117440512 2 201326591 201326591
1348933544 13 12 1
1348933544
1348933544 14 8 1
1107231926
157745194 22 18 1
1 8 8 12 50331903 201326591 1
1332156350 -1 61 1
a) If there is a line across the pencil icon on the tool bar
155650036 13 12 1
155649832
155650036 14 8 1
1332154062
157751594 -1 57 1
is visible on the left hand side of the project manager.
1348934108 13 12 1
1348935632
1348934108 14 8 1
1348935368
1348931216 13 12 1
1348933364
1348931216 14 8 1
635374990
162993398 22 18 1
1 1 8 9 117440512 201326591 1
1336345658 -1 61 1
1) To keep your model and code in sync, it is important that
155649784 13 12 1
155649544
155649784 14 8 1
1336346142
157753278 -1 56 1
4) Try changing the order of methods in a class through
155653036 13 12 1
155649676
155653036 14 8 1
157751702
1108284806 -1 14 1
your changes.
155655244 13 12 1
155656096
155655244 14 8 1
1108282310
1322189382 64 61 1
A
1322189382 31 60 1
1322189382 50 60 1
1322189382 51 56 1
1322189382 54 40 1
162993982 1108285694 0 0 162989814 0
0 0
1322189422 27 16 1
-1000 -1000 1000 1000
1322189438 23 4 1
1108286534
1322195934 42 82 1
28 0 0
1322195934 51 56 1
1322195934 54 40 1
1107235714 162991674 0 0 162994250 0
0 0
1322195974 27 16 1
94083 832 128733 34497
1322195990 12 6 1
155648080
24
1322195996 21 4 1
641144094
1322196000 28 8 1
94083 832
1332152410 -1 47 1
of the "Shape Hierarchy" class diagram, choose
155649832 13 12 1
155649652
155649832 14 8 1
1332153190
1322194866 -1 65 1
(If not double-click the category called "Tutorial" to open it.)
1348935632 13 12 1
1348935500
1348935632 14 8 1
1107231730
162991218 42 82 1
28 0 0
162991218 51 56 1
162991218 54 40 1
162990110 163518446 0 0 162994250 0
0 0
162991258 27 16 1
391226 813 393308 31395
162991274 12 6 1
1348933304
1
162991280 21 4 1
641144094
162991284 28 8 1
391226 813
1348933364 13 12 1
1348932464
1348933364 14 8 1
157751326
1336348770 -1 57 1
you make all architectural changes through S-CASE. Hence
155649544 13 12 1
155649256
155649544 14 8 1
1336345898
157751466 -1 56 1
the class specification dialog box. Regenerate the code
155649676 13 12 1
155648992
155649676 14 8 1
155656120
155648416 13 12 1
155652652
155648416 14 8 1
155655964
155656096 13 12 1
155648416
155656096 14 8 1
1108283070
1107235566 22 18 1
1 8 8 9 117440512 201326591 0
1107231926 -1 22 1
- Explore the classes
1332154062 -1 53 1
Check Out from the Project menu of the diagram. This
155649652 13 12 1
155649208
155649652 14 8 1
155649472
641144094 22 18 1
16 8 8 9 117440512 201326591 1
1348935500 13 12 1
155648128
1348935500 14 8 1
1322195766
635374990 -1 65 1
// -MQEnd- [Module_Includes] [Rectangle_cc] <0000005B.00000000>
1348932464 13 12 1
1348933664
1348932464 14 8 1
1107235606
1336346142 -1 60 1
adding, deleting or changing of classes, method signatures,
155649256 13 12 1
155649136
155649256 14 8 1
1336346390
157751702 -1 25 1
and observe the changes.
155648992 13 12 1
155656000
155648992 14 8 1
157751010
1108282310 -1 56 1
The extensions of the "clean code" files can be changed
1107231034 24 22 1
1 1 2 2 117440512 2 201326591 201326591
155648080 13 12 1
155648344
155648080 14 8 1
1108286462
1332153190 -1 36 1
will allow you to edit the diagram.
155649208 13 12 1
155649028
155649208 14 8 1
1332156718
1107231730 -1 52 1
c) Now select the category "4. C++ Code Generation"
155648128 13 12 1
155648392
155648128 14 8 1
1108286226
1348933304 13 12 1
1348933304
1348933304 14 8 1
1107231846
157751326 -1 74 1
// -MQBeg- [Module_Includes] [Rectangle_cc] <0000005B.00000000> Retained!
1348933664 13 12 1
1348934672
1348933664 14 8 1
1107231078
1336345898 -1 60 1
attributes, relations etc. should be done through the tool.
155649136 13 12 1
155648884
155649136 14 8 1
1336344734
1108286910 42 82 1
28 0 0
1108286910 51 56 1
1108286910 54 40 1
1332153310 1332152118 0 0 162994250 0
0 0
1108286950 27 16 1
1166 1000 4831 25915
1108286966 12 6 1
155649760
1
1108286972 21 4 1
1337400862
1108286976 28 8 1
1166 1000
155656000 13 12 1
155651032
155656000 14 8 1
157745514
1108283070 -1 57 1
by choosing "Source File Extensions..." from the Options
1107230818 74 98 1
0 0 1
1107230818 33 8 1
0
1107230826 31 60 1
1107230826 50 60 1
1107230826 51 56 1
1107230826 54 40 1
1108281942 162988750 0 1108281222 162989814 0
0 0
1107230866 27 16 1
-5000 -5000 2276 5000
1107230882 23 4 1
1108282882
1107230886 28 8 1
0 0
1107230894 28 8 1
0 0
1107235130 41 82 1
1107235130 42 82 1
28 0 1
1107235130 51 56 1
1107235130 54 40 1
0 0 1107235130 0 0 162988750
0 30001
1107235170 27 16 1
-3500 -4000 2276 5000
1107235186 12 6 1
0
0
1107235192 21 4 1
1108284270
1107235196 28 8 1
-3500 500
1107235714 42 82 1
28 0 0
1107235714 51 56 1
1107235714 54 40 1
1108284090 1322195934 0 0 162994250 0
0 0
1107235754 27 16 1
91166 916 93831 23165
1107235770 12 6 1
155648740
1
1107235776 21 4 1
1108285390
1107235780 28 8 1
91166 916
155648344 13 12 1
155648560
155648344 14 8 1
1108285334
1332150958 42 82 1
28 0 0
1332150958 51 56 1
1332150958 54 40 1
1332152118 1108284546 0 0 162994250 0
0 0
1332150998 27 16 1
541089 1166 543754 21415
1332151014 12 6 1
155650600
1
1332151020 21 4 1
1332153730
1332151024 28 8 1
541089 1166
155649028 13 12 1
155648788
155649028 14 8 1
1332151886
1322195766 -1 52 1
by clicking it. The "Shape Hierarchy" class diagram
155648392 13 12 1
155648608
155648392 14 8 1
1108285114
163518446 42 82 1
28 0 0
163518446 51 56 1
163518446 54 40 1
162991218 1108287398 0 0 162994250 0
0 0
163518486 27 16 1
408158 833 437144 34415
163518502 12 6 1
155648152
20
163518508 21 4 1
641144094
163518512 28 8 1
408158 833
1107235606 -1 19 1
#include <stdio.h>
1348934672 13 12 1
1348931216
1348934672 14 8 1
1107233386
1336346390 -1 54 1
This allows the code generator to output the modified
155648884 13 12 1
155648656
155648884 14 8 1
1336345626
157751010 -1 58 1
5) The code generator can be configured to output methods
155651032 13 12 1
155651824
155651032 14 8 1
157751222
1108286534 24 22 1
1 1 2 0 117440512 2 201326591 201326591
1108286462 -1 47 1
Run the sample application to see the results.
155648560 13 12 1
155648764
155648560 14 8 1
1108283846
1332156718 -1 52 1
b) The "Shape Hierarchy" class diagram contains two
155648788 13 12 1
155648584
155648788 14 8 1
1332150314
1108286226 -1 56 1
contained in this category should now be visible on the
155648608 13 12 1
155648812
155648608 14 8 1
1348931324
1107231846 -1 56 1
c) Add 3 #include lines to rectangle.cc as shown below:
1107231078 -1 19 1
#include "shape.h"
1336344734 -1 64 1
architecture into your source files correctly, while preserving
155648656 13 12 1
155648176
155648656 14 8 1
155648512
157745514 -1 64 1
first followed by the attributes or vice versa. This option can
155651824 13 12 1
155653552
155651824 14 8 1
157753218
1108285674 72 96 1
0 0 5
1108285674 32 20 1
0 0 0 0
1108285694 39 62 1
0 129
1108285694 54 40 1
1322189382 1108280898 0 0 162989814 0
0 0
1108285734 25 4 1
1108280690
1108285738 28 8 1
0 0
1108285746 28 8 1
0 0
155648740 13 12 1
155648740
155648740 14 8 1
1108282826
1108285390 22 18 1
1 8 8 12 50331903 201326591 1
1108285334 -1 52 1
a) We have already provided implementations for the
155648764 13 12 1
155649004
155648764 14 8 1
1108282786
1332151886 -1 52 1
classes. Shape is an abstract class that contains a
155648584 13 12 1
155648368
155648584 14 8 1
1332157554
1108285114 -1 40 1
right hand side of the Project Manager.
155648812 13 12 1
1348933640
155648812 14 8 1
1108282554
155648152 13 12 1
155648452
155648152 14 8 1
1108286146
1107233386 -1 18 1
#include "rect.h"
1336345626 -1 29 1
your method implementations.
155648176 13 12 1
155648020
155648176 14 8 1
1336348714
157751222 -1 60 1
be controlled via the menu item "Options-Attributes First".
155653552 13 12 1
155656108
155653552 14 8 1
155650552
1108284270 22 18 1
1 8 8 9 117440512 201326591 0
1108284090 42 82 1
28 0 0
1108284090 51 56 1
1108284090 54 40 1
1108279830 1107235714 0 0 162994250 0
0 0
1108284130 27 16 1
135916 832 138581 18997
1108284146 12 6 1
155649424
1
1108284152 21 4 1
1108280582
1108284156 28 8 1
135916 832
1108283846 -1 52 1
Shape and Line classes in the following four files:
155649004 13 12 1
155649184
155649004 14 8 1
1108280562
1332150314 -1 53 1
a pure virtual function called Draw(). Line inherits
155648368 13 12 1
155648104
155648368 14 8 1
1332151042
155652652 13 12 1
155652004
155652652 14 8 1
1108281782
1108287398 42 82 1
28 0 0
1108287398 51 56 1
1108287398 54 40 1
163518446 1108283450 0 0 162994250 0
0 0
1108287438 27 16 1
405491 832 408156 21497
1108287454 12 6 1
155648836
1
1108287460 21 4 1
1108284966
1108287464 28 8 1
405491 832
155648452 13 12 1
155648632
155648452 14 8 1
1108284902
155655964 -1 6 1
menu.
155648020 13 12 1
155655856
155648020 14 8 1
1336346086
157753218 -1 57 1
Try out this option to see the effect on generated code.
155656108 13 12 1
155649688
155656108 14 8 1
157751402
1108282882 24 22 1
1 1 2 2 117440512 2 201326591 201326591
1108282826 -1 31 1
- Build the Sample application
1108282786 -1 16 1
shape.h
155649184 13 12 1
155649448
155649184 14 8 1
1108279622
1332157554 -1 50 1
from Shape and provides a real implementation for
155648104 13 12 1
155654260
155648104 14 8 1
155648644
1108282554 -1 57 1
d) Double click the icon for the "Shape Hierarchy" class
1108286146 -1 17 1
see the results.
155648632 13 12 1
155648860
155648632 14 8 1
1108283210
1336348714 -1 54 1
Try adding some more classes, methods, attributes and
155655856 13 12 1
155652184
155655856 14 8 1
1336345842
155652004 13 12 1
155654548
155652004 14 8 1
1108280466
155649688 13 12 1
155653192
155649688 14 8 1
157750950
1108281934 74 98 1
0 0 3
1108281934 33 8 1
0
1108281942 31 60 1
1108281942 50 60 1
1108281942 51 56 1
1108281942 54 40 1
1337397990 1107230826 0 1337397270 162989814 0
0 0
1108281982 27 16 1
-5000 -5000 2276 5000
1108281998 23 4 1
1337399550
1108282002 28 8 1
0 0
1108282010 28 8 1
0 0
1108281222 41 82 1
1108281222 42 82 1
28 0 1
1108281222 51 56 1
1108281222 54 40 1
0 0 1108281222 0 0 1107230826
0 30001
1108281262 27 16 1
-3500 -4000 2276 5000
1108281278 12 6 1
0
0
1108281284 21 4 1
1337400550
1108281288 28 8 1
-3500 500
1108280878 72 96 1
0 0 4
1108280878 32 20 1
0 0 0 0
1108280898 39 62 1
0 129
1108280898 54 40 1
1108285694 1337400370 0 0 162989814 0
0 0
1108280938 25 4 1
1337400262
1108280942 28 8 1
0 0
1108280950 28 8 1
0 0
1108280690 26 16 1
1 1 2 0 117440512 201326591
155649424 13 12 1
155649424
155649424 14 8 1
1337401126
1108280582 22 18 1
1 8 8 12 50331903 201326591 1
1108280562 -1 17 1
shape.cc
155649448 13 12 1
155649604
155649448 14 8 1
1337401086
1332151042 -1 19 1
the Draw() method.
155654260 13 12 1
155651764
155654260 14 8 1
1332150554
155648836 13 12 1
155648836
155648836 14 8 1
1108282502
1108284966 22 18 1
1 8 8 12 50331903 201326591 1
1108284902 -1 61 1
Modify the file sample.cc as follows to create and draw some
155648860 13 12 1
155649112
155648860 14 8 1
1348931924
1336346086 -1 53 1
relations to your shape model. Try changing names of
155652184 13 12 1
155650528
155652184 14 8 1
1336346326
157751402 -1 55 1
6) Assign multiple classes to the same header and body
155653192 13 12 1
155654080
155653192 14 8 1
157745454
1108279830 42 82 1
28 0 0
1108279830 51 56 1
1108279830 54 40 1
1337399350 1108284090 0 0 162994250 0
0 0
1108279870 27 16 1
138583 833 168985 37415
1108279886 12 6 1
155649964
21
1108279892 21 4 1
641144094
1108279896 28 8 1
138583 833
1108279622 -1 15 1
line.h
155649604 13 12 1
155649808
155649604 14 8 1
1348934492
162988494 24 22 1
1 1 2 0 117440512 2 201326591 201326591
155651764 13 12 1
155651452
155651764 14 8 1
1332151230
1108283450 42 82 1
28 0 0
1108283450 51 56 1
1108283450 54 40 1
1108287398 1107235798 0 0 162994250 0
0 0
1108283490 27 16 1
367326 855 387816 52520
1108283506 12 6 1
155649496
14
1108283512 21 4 1
1108280330
1108283516 28 8 1
367326 855
1108283210 -1 49 1
rectangle shapes in addition to the line shapes:
155649112 13 12 1
155649232
155649112 14 8 1
1108280270
1336345842 -1 51 1
classes. Regenerate the code. Observe how the code
155650528 13 12 1
155655832
155650528 14 8 1
1336344678
157750950 -1 55 1
file pair. Notice how the code generator outputs these
155654080 13 12 1
155654656
155654080 14 8 1
157751162
1337401126 -1 24 1
- Add a Rectangle class
1337401086 -1 16 1
line.cc
155649808 13 12 1
155650012
155649808 14 8 1
1337399062
1332150554 -1 54 1
c) Double click the Shape and Line classes to explore
155651452 13 12 1
155651332
155651452 14 8 1
1332152202
1108282502 -1 28 1
- Modify the driver program
155649760 13 12 1
155649760
155649760 14 8 1
641146726
155649232 13 12 1
155649520
155649232 14 8 1
1348934324
1336346326 -1 62 1
generator reflects the modified architecture into your source
155655832 13 12 1
155653912
155655832 14 8 1
155652796
157745454 -1 58 1
classes into the specified files. The order of classes in
155654656 13 12 1
155648056
155654656 14 8 1
157753154
1337400550 22 18 1
1 8 8 9 117440512 201326591 0
1337400350 72 96 1
0 0 3
1337400350 32 20 1
0 0 0 0
1337400370 39 62 1
0 129
1337400370 54 40 1
1108280898 1337396346 0 0 162989814 0
0 0
1337400410 25 4 1
1337396238
1337400414 28 8 1
0 0
1337400422 28 8 1
0 0
1337400262 26 16 1
1 1 2 0 117440512 201326591
155649964 13 12 1
155650204
155649964 14 8 1
1337397534
1337400862 22 18 1
1 8 8 18 33488896 201326591 1
155650012 13 12 1
155650228
155650012 14 8 1
1337397002
1332151230 -1 52 1
their specifications. Note that the Shape class has
155651332 13 12 1
155651668
155651332 14 8 1
1332152854
155649496 13 12 1
155649712
155649496 14 8 1
1348934636
1108280330 22 18 1
1 1 8 9 117440512 201326591 1
1108280270 -1 58 1
a) Add a #include for the rectangle class as shown below:
155649520 13 12 1
155649736
155649520 14 8 1
1337400790
1336344678 -1 51 1
files without loosing your method implementations.
155653912 13 12 1
155655100
155653912 14 8 1
1336345554
157751162 -1 51 1
a source file can be changed by moving the section
1337399550 24 22 1
1 1 2 2 117440512 2 201326591 201326591
1337399350 42 82 1
28 0 0
1337399350 51 56 1
1337399350 54 40 1
1337394950 1108279830 0 0 162994250 0
0 0
1337399390 27 16 1
180829 917 183494 19166
1337399406 12 6 1
155650696
1
1337399412 21 4 1
1337396002
1337399416 28 8 1
180829 917
155650204 13 12 1
155650492
155650204 14 8 1
1337395942
1337399062 -1 58 1
These files are located under scase_directory:src:shapes.
155650228 13 12 1
155650516
155650228 14 8 1
1337395822
1332152202 -1 54 1
a "Style" member, which is the character used to draw
155651668 13 12 1
155649844
155651668 14 8 1
1332153494
1107235798 42 82 1
28 0 0
1107235798 51 56 1
1107235798 54 40 1
1108283450 1337398706 0 0 162994250 0
0 0
1107235838 27 16 1
363764 940 367262 32189
1107235854 12 6 1
155650060
2
1107235860 21 4 1
641144094
1107235864 28 8 1
363764 940
155649712 13 12 1
155649856
155649712 14 8 1
155649952
155650600 13 12 1
155650600
155650600 14 8 1
1332153278
155649736 13 12 1
155649880
155649736 14 8 1
1337399750
1332153730 22 18 1
1 8 8 12 50331903 201326591 1
155655100 13 12 1
155655544
155655100 14 8 1
1336348658
157753154 -1 62 1
enclosing a class to the desired location. The code generator
1337397982 74 98 1
0 0 2
1337397982 33 8 1
0
1337397990 31 60 1
1337397990 50 60 1
1337397990 51 56 1
1337397990 54 40 1
1332155882 1108281942 0 1332155162 162989814 0
0 0
1337398030 27 16 1
-5000 -5000 2276 5000
1337398046 23 4 1
1332157162
1337398050 28 8 1
0 0
1337398058 28 8 1
0 0
1337397270 41 82 1
1337397270 42 82 1
28 0 1
1337397270 51 56 1
1337397270 54 40 1
0 0 1337397270 0 0 1108281942
0 30001
1337397310 27 16 1
-3500 -4000 2276 5000
1337397326 12 6 1
0
0
1337397332 21 4 1
1337393446
1337397336 28 8 1
-3500 500
1337397534 -1 34 1
e) Close the class specification.
155650492 13 12 1
155650720
155650492 14 8 1
1337394742
1337397002 -1 59 1
You can open shape.h and shape.cc by shift double-clicking
155650516 13 12 1
155650744
155650516 14 8 1
1337394626
1332152854 -1 49 1
the shape. The Line class has a "Length" member.
155649844 13 12 1
155654140
155649844 14 8 1
1332154318
1108281782 -1 66 1
7) Create a new class and fill in the name of the body file only.
155649856 13 12 1
155650096
155649856 14 8 1
1337398458
1337400790 -1 27 1
#include "shape.h"
155649880 13 12 1
155650120
155649880 14 8 1
1337398346
1336345554 -1 67 1
2) Try switching inline functions to "out-of-line" and vice versa.
1337396326 72 96 1
0 0 2
1337396326 32 20 1
0 0 0 0
1337396346 39 62 1
133 0
1337396346 54 40 1
1337400370 1332156962 0 0 162989814 0
0 0
1337396386 25 4 1
1332156854
1337396390 28 8 1
0 0
1337396398 28 8 1
0 0
1337396238 26 16 1
1 1 2 0 117440512 201326591
155650696 13 12 1
155650696
155650696 14 8 1
1337393418
1337396002 22 18 1
1 8 8 12 50331903 201326591 1
1337395942 -1 57 1
a) Add a class called Rectangle to the "Shape Hierarchy"
155650720 13 12 1
155650900
155650720 14 8 1
1348934480
1337395822 -1 58 1
on the Shape class. Similarly, you can look at line.h and
155650744 13 12 1
155650924
155650744 14 8 1
1348934912
1332153494 -1 54 1
Also note how the access of attributes and methods is
155654140 13 12 1
155649196
155654140 14 8 1
1332155134
155650060 13 12 1
155650312
155650060 14 8 1
1337396802
155649952 -1 5 1
void
155650096 13 12 1
155650336
155650096 14 8 1
1348934984
1337399750 -1 26 1
#include "line.h"
155650120 13 12 1
155650360
155650120 14 8 1
1348935224
1336348658 -1 54 1
Note how the code generator moves the associated code
1337394950 42 82 1
28 0 0
1337394950 51 56 1
1337394950 54 40 1
1332154838 1337399350 0 0 162994250 0
0 0
1337394990 27 16 1
183578 832 218228 41497
1337395006 12 6 1
155651272
24
1337395012 21 4 1
641144094
1337395016 28 8 1
183578 832
1337394742 -1 15 1
class diagram.
155650900 13 12 1
155651104
155650900 14 8 1
1332156602
1337394626 -1 52 1
line.cc by shift double-clicking on the Line class.
155650924 13 12 1
155651164
155650924 14 8 1
1332156478
1332154318 -1 54 1
shown using vertical bars in front of these elements.
155649196 13 12 1
155653852
155649196 14 8 1
155655772
1337398706 42 82 1
28 0 0
1337398706 51 56 1
1337398706 54 40 1
1107235798 1337394310 0 0 162994250 0
0 0
1337398746 27 16 1
360932 939 363597 26771
1337398762 12 6 1
155650768
1
1337398768 21 4 1
1337395598
1337398772 28 8 1
360932 939
155650312 13 12 1
155650060
155650312 14 8 1
1337395534
1337398458 -1 18 1
Rectangle::Draw()
155650336 13 12 1
155650564
155650336 14 8 1
1337395442
1337398346 -1 48 1
#include "rect.h" // ADD THIS LINE
155650360 13 12 1
155650588
155650360 14 8 1
1337395318
1337393446 22 18 1
1 8 8 9 117440512 201326591 0
1337393418 -1 24 1
- Generate Source Files
155654548 13 12 1
155651092
155654548 14 8 1
1108284482
155651104 13 12 1
155651296
155651104 14 8 1
1332154566
1337393846 42 82 1
28 0 0
1337393846 51 56 1
1337393846 54 40 1
641141122 635371606 0 0 162989814 0
0 0
1337393886 27 16 1
0 0 0 0
1337393902 12 6 1
0
0
1337393908 21 4 1
641144094
1337393912 28 8 1
0 0
155651164 13 12 1
155651320
155651164 14 8 1
1332154438
1332155134 -1 23 1
As per Booch notation:
155653852 13 12 1
155654752
155653852 14 8 1
1332155838
1337396802 -1 23 1
method as shown below:
1337393266 64 61 1
V
1337393266 31 60 1
1337393266 50 60 1
1337393266 51 56 1
1337393266 54 40 1
635371606 1482098986 0 0 162989814 0
0 0
1337393306 27 16 1
-1000 -1000 1000 1000
1337393322 23 4 1
1482100814
155650564 13 12 1
155650792
155650564 14 8 1
1337394086
1332157682 41 82 1
1332157682 42 82 1
28 0 5
1332157682 51 56 1
1332157682 54 40 1
0 0 1332157682 0 0 635371606
0 30001
1332157722 27 16 1
-2500 -5000 2500 5000
1332157738 12 6 1
0
0
1332157744 21 4 1
641139994
1332157748 28 8 1
0 0
155650588 13 12 1
155650816
155650588 14 8 1
1348934684
1332157162 24 22 1
1 1 2 2 117440512 2 180404416 201326591
1332156942 72 96 1
0 0 1
1332156942 32 20 1
0 0 0 0
1332156962 39 62 1
5 0
1332156962 54 40 1
1337396346 1332152666 0 0 162989814 0
0 0
1332157002 25 4 1
1332152558
1332157006 28 8 1
0 0
1332157014 28 8 1
0 0
1332156854 26 16 1
1 1 2 0 117440512 201326591
155651272 13 12 1
155651548
155651272 14 8 1
1332153750
1332156602 -1 61 1
b) Draw an inheritance relationship from Rectangle to Shape.
155651296 13 12 1
155651572
155651296 14 8 1
1332153670
1332156478 -1 60 1
b) We have also provided a driver program to test the above
155651320 13 12 1
155651596
155651320 14 8 1
1332153550
1332153310 42 82 1
28 0 0
1332153310 51 56 1
1332153310 54 40 1
1482104222 1108286910 0 0 162994250 0
0 0
1332153350 27 16 1
4501 916 16495 31748
1332153366 12 6 1
155652964
8
1332153372 21 4 1
641144094
1332153376 28 8 1
4501 916
155654752 13 12 1
155651632
155654752 14 8 1
1332157130
155650768 13 12 1
155650768
155650768 14 8 1
1332157478
1337395598 22 18 1
1 8 8 12 50331903 201326591 1
1337395534 -1 60 1
b) In the file rect.cc add the implementation of the Draw()
1337395442 -1 69 1
// -MQBeg- [Op_Body] [Rectangle::Draw] <00000066.0000001D> Retained!
155650792 13 12 1
155650984
155650792 14 8 1
1332157414
1337395318 -1 62 1
b) Replace one line in case 2 of the CreateShapes() function:
155650816 13 12 1
155651044
155650816 14 8 1
1332157334
1332155874 74 98 1
0 0 4
1332155874 33 8 1
0
1332155882 31 60 1
1332155882 50 60 1
1332155882 51 56 1
1332155882 54 40 1
641145710 1337397990 0 641144990 162989814 0
0 0
1332155922 27 16 1
-5000 -5000 2276 5000
1332155938 23 4 1
641146642
1332155942 28 8 1
0 0
1332155950 28 8 1
0 0
1332155162 41 82 1
1332155162 42 82 1
28 0 1
1332155162 51 56 1
1332155162 54 40 1
0 0 1332155162 0 0 1337397990
0 30001
1332155202 27 16 1
-3500 -4000 2276 5000
1332155218 12 6 1
0
0
1332155224 21 4 1
1332151326
1332155228 28 8 1
-3500 500
1332154838 42 82 1
28 0 0
1332154838 51 56 1
1332154838 54 40 1
1332151146 1337394950 0 0 162994250 0
0 0
1332154878 27 16 1
225610 886 228275 31635
1332154894 12 6 1
155651944
1
1332154900 21 4 1
1332152322
1332154904 28 8 1
225610 886
155651548 13 12 1
155651728
155651548 14 8 1
1332152258
1332154566 -1 62 1
The arrow of the relationship should point to Shape, which is
155651572 13 12 1
155651752
155651572 14 8 1
1348935620
1332154438 -1 65 1
implementations of Shape & Line. This driver is in a file called
155651596 13 12 1
155651776
155651596 14 8 1
1332151726
1332155838 -1 31 1
No bar = public access
155651632 13 12 1
155653384
155651632 14 8 1
1332158426
1337394310 42 82 1
28 0 0
1337394310 51 56 1
1337394310 54 40 1
1337398706 1332154198 0 0 162994250 0
0 0
1337394350 27 16 1
325545 771 354531 56186
1337394366 12 6 1
155651344
20
1337394372 21 4 1
1332156330
1337394376 28 8 1
325545 771
1337394086 -1 33 1
char style = this->GetStyle();
155650984 13 12 1
155651188
155650984 14 8 1
155651260
1108284546 42 82 1
28 0 0
1108284546 51 56 1
1108284546 54 40 1
1332150958 1332152018 0 0 162994250 0
0 0
1108284586 27 16 1
495755 1165 498420 21414
1108284602 12 6 1
155649988
1
1108284608 21 4 1
1337396734
1108284612 28 8 1
495755 1165
155651044 13 12 1
155651212
155651044 14 8 1
1332156222
1332153750 -1 40 1
generated automatically from the model.
155651728 13 12 1
155651968
155651728 14 8 1
1332150894
1332153670 -1 18 1
the parent class.
155651752 13 12 1
155652028
155651752 14 8 1
1332150770
1332153550 -1 55 1
sample.cc. Open this file using the File-Open menu and
155651776 13 12 1
155652052
155651776 14 8 1
1332150690
1332157130 -1 29 1
| = protected access
1332157478 -1 38 1
- Filling in the method stubs (cont.)
1332157414 -1 40 1
for (int Line=0; Line<Height; Line++)
155651188 13 12 1
155651380
155651188 14 8 1
1332153934
1332157334 -1 16 1
Before:
155651212 13 12 1
155651404
155651212 14 8 1
1332153854
1332152646 72 96 1
0 0 0
1332152646 32 20 1
0 0 0 0
1332152666 39 62 1
0 0
1332152666 54 40 1
1332156962 641144650 0 0 162989814 0
0 0
1332152706 25 4 1
641144290
1332152710 28 8 1
0 0
1332152718 28 8 1
0 0
1332152558 26 16 1
1 1 2 0 117440512 201326591
155651944 13 12 1
155651944
155651944 14 8 1
641146578
1332152322 22 18 1
1 8 8 12 50331903 201326591 1
1332152258 -1 60 1
a) Select the Rectangle class by clicking on it. Now choose
155651968 13 12 1
155652220
155651968 14 8 1
641146502
1108280466 -1 61 1
Leave the name of the header file blank. Notice how the code
155652028 13 12 1
155652244
155652028 14 8 1
641146422
1332151726 -1 59 1
explore its contents. The sample program creates 10 shapes
155652052 13 12 1
155652268
155652052 14 8 1
1348935164
1332158426 -1 28 1
|| = private access
155651344 13 12 1
155651656
155651344 14 8 1
1348932164
1332156330 22 18 1
1 1 8 9 117440512 201326591 1
155651260 -1 4 1
{
155651380 13 12 1
155651680
155651380 14 8 1
1332153022
1332156222 -1 43 1
Shapes[i] = new Line('x', 30);
155651404 13 12 1
155651704
155651404 14 8 1
1332152906
1332151326 22 18 1
1 8 8 9 117440512 201326591 0
1332151146 42 82 1
28 0 0
1332151146 51 56 1
1332151146 54 40 1
641143278 1332154838 0 0 162994250 0
0 0
1332151186 27 16 1
228931 886 256501 37802
1332151202 12 6 1
155649052
19
1332151208 21 4 1
641144094
1332151212 28 8 1
228931 886
1332150894 -1 60 1
"Generate Code" from the "Actions" menu. This will generate
155652220 13 12 1
155652424
155652220 14 8 1
1348933376
1332150770 -1 61 1
c) Double click on the Rectangle class to bring up its class
155652244 13 12 1
155652448
155652244 14 8 1
1348935464
1332150690 -1 16 1
and draws them.
155652268 13 12 1
155652472
155652268 14 8 1
641144018
1332154198 42 82 1
28 0 0
1332154198 51 56 1
1332154198 54 40 1
1337394310 1332150450 0 0 162994250 0
0 0
1332154238 27 16 1
318796 937 325126 32352
1332154254 12 6 1
155652076
4
1332154260 21 4 1
641144094
1332154264 28 8 1
318796 937
155651656 13 12 1
155651836
155651656 14 8 1
155652016
1332153934 -1 33 1
for (int i=0; i<Length; i++)
155651680 13 12 1
155651860
155651680 14 8 1
1332151522
1332153854 -1 15 1
After:
155651704 13 12 1
155651884
155651704 14 8 1
1348934720
641146642 24 22 1
1 1 2 2 117440512 2 201326591 201326591
641146578 -1 40 1
- Complete the Rectangle implementation
641146502 -1 51 1
the header and body files for the Rectangle class.
155652424 13 12 1
155652712
155652424 14 8 1
641142982
641146422 -1 15 1
specification.
155652448 13 12 1
155652736
155652448 14 8 1
641142854
155651092 13 12 1
155652592
155651092 14 8 1
1108285610
155652472 13 12 1
155652760
155652472 14 8 1
1348935440
641146726 -1 20 1
C++ Code Generation
155651836 13 12 1
155652112
155651836 14 8 1
1337393198
1332153022 -1 57 1
( Line>0 && Line<Height-1 && i>0 && i<Length-1 ) ?
155651860 13 12 1
155652136
155651860 14 8 1
641146810
1332152906 -1 51 1
Shapes[i] = new Rectangle('x', 30, 3);
155651884 13 12 1
155652160
155651884 14 8 1
1348934960
641145702 74 98 1
0 0 5
641145702 33 8 1
0
641145710 31 60 1
641145710 50 60 1
641145710 51 56 1
641145710 54 40 1
641144650 1332155882 0 641139206 162989814 0
0 0
641145750 27 16 1
-5000 -5000 2276 5000
641145766 23 4 1
641140186
641145770 28 8 1
0 0
641145778 28 8 1
0 0
641144990 41 82 1
641144990 42 82 1
28 0 1
641144990 51 56 1
641144990 54 40 1
0 0 641144990 0 0 1332155882
0 30001
641145030 27 16 1
-3500 -4000 2276 5000
641145046 12 6 1
0
0
641145052 21 4 1
641140878
641145056 28 8 1
-3500 500
641144642 74 98 1
0 0 6
641144642 33 8 1
0
641144650 31 60 1
641144650 50 60 1
641144650 51 56 1
641144650 54 40 1
1332152666 641145710 0 1482104742 162989814 0
0 0
641144690 27 16 1
-5000 -5000 2276 5000
641144706 23 4 1
641140142
641144710 28 8 1
0 0
641144718 28 8 1
0 0
641144290 26 16 1
1 1 2 0 117440512 201326591
155649052 13 12 1
155655052
155649052 14 8 1
163519122
1332153278 -1 30 1
- Other things to try (cont.)
155652712 13 12 1
155652916
155652712 14 8 1
641142026
1108284482 -1 60 1
generator produces both the class definition and the method
155652736 13 12 1
155652940
155652736 14 8 1
641141902
641144018 -1 31 1
c) Close all the source files.
155652760 13 12 1
155652988
155652760 14 8 1
641141774
155652076 13 12 1
155652328
155652076 14 8 1
641146210
155652016 -1 8 1
inline
155652112 13 12 1
155652352
155652112 14 8 1
641146074
1332151522 -1 39 1
putchar(' ') : putchar(style);
155652136 13 12 1
155652376
155652136 14 8 1
155652316
155652592 13 12 1
155653876
155652592 14 8 1
1108280630
155652160 13 12 1
155652400
155652160 14 8 1
641145926
641143278 42 82 1
28 0 0
641143278 51 56 1
641143278 54 40 1
641142534 1332151146 0 0 162994250 0
0 0
641143318 27 16 1
270950 894 273615 36893
641143334 12 6 1
155653252
1
641143340 21 4 1
641140790
641143344 28 8 1
270950 894
155655052 13 12 1
155654980
155655052 14 8 1
157228198
641142982 -1 64 1
b) Shift double-click on the Rectangle class to open the header
155652916 13 12 1
155653120
155652916 14 8 1
641140642
641142854 -1 63 1
d) Notice that "Header" and "Body" file names have been seeded
155652940 13 12 1
155653144
155652940 14 8 1
641140510
155652964 13 12 1
155653720
155652964 14 8 1
1482100506
155652988 13 12 1
155653168
155652988 14 8 1
641140390
1332150450 42 82 1
28 0 0
1332150450 51 56 1
1332150450 54 40 1
1332154198 641142534 0 0 162994250 0
0 0
1332150490 27 16 1
316131 855 318796 21437
1332150506 12 6 1
155652784
1
1332150512 21 4 1
641143870
1332150516 28 8 1
316131 855
155652328 13 12 1
155652496
155652328 14 8 1
641143814
1337393198 -1 23 1
Rectangle::Rectangle()
155652352 13 12 1
155652520
155652352 14 8 1
641143686
641146810 -1 19 1
putchar('\n');
155652376 13 12 1
155649496
155652376 14 8 1
641143562
155649988 13 12 1
155649988
155649988 14 8 1
641146330
155652400 13 12 1
155648152
155652400 14 8 1
641143478
163519122 -1 61 1
Check the inline box to make the constructor inline.
155654980 13 12 1
155654812
155654980 14 8 1
157228490
641142026 -1 64 1
and body files. Explore the files and familiarize yourself with
155653120 13 12 1
155653300
155653120 14 8 1
1348934504
641141902 -1 62 1
with "Rectangle". You can change these names if you wish. For
155653144 13 12 1
155653324
155653144 14 8 1
641139882
641141774 -1 64 1
d) We have provided a trivial script called "build" that allows
155653168 13 12 1
155648080
155653168 14 8 1
641139754
641146210 -1 58 1
a) In the file rect.h add the 3 marked lines shown below:
155652496 13 12 1
155652808
155652496 14 8 1
641142318
641146074 -1 74 1
// -MQBeg- [Op_Init] [Rectangle::Rectangle] <00000066.0000001B> Retained!
155652520 13 12 1
155652832
155652520 14 8 1
1348935656
155652316 -1 4 1
}
641145926 -1 63 1
Now modify your build script to include the rectangle class in
641140878 22 18 1
1 8 8 9 117440512 201326591 0
155653252 13 12 1
155653252
155653252 14 8 1
1482104422
641140790 22 18 1
1 8 8 12 50331903 201326591 1
157228198 -1 61 1
a) Double click on the Rectangle class to bring up its class
155654812 13 12 1
155654728
155654812 14 8 1
155654908
641140642 -1 20 1
the generated code.
155653300 13 12 1
155653420
155653300 14 8 1
1482103934
641140510 -1 70 1
the purpose of this tutorial, let us change both the names to "rect".
155653324 13 12 1
155653444
155653324 14 8 1
1482103810
641140390 -1 55 1
you to make this sample application. Please modify the
155652784 13 12 1
155652784
155652784 14 8 1
641141682
641143870 22 18 1
1 8 8 12 50331903 201326591 1
641143814 -1 53 1
To complete the Rectangle implementation we must now
155652808 13 12 1
155652076
155652808 14 8 1
1348934660
641143686 -1 65 1
// -MQEnd- [Op_Init] [Rectangle::Rectangle] <00000066.0000001B>
155652832 13 12 1
155653072
155652832 14 8 1
641140966
641143562 -1 60 1
// -MQEnd- [Op_Body] [Rectangle::Draw] <00000066.0000001D>
641143478 -1 62 1
the sample application. Rebuild the application and run it to
641140186 24 22 1
1 1 2 2 117440512 2 201326591 201326591
641140142 24 22 1
1 1 2 2 117440512 2 201326591 201326591
641142534 42 82 1
28 0 0
641142534 51 56 1
641142534 54 40 1
1332150450 641143278 0 0 162994250 0
0 0
641142574 27 16 1
274116 892 307350 34058
641142590 12 6 1
155653348
23
641142596 21 4 1
641144094
641142600 28 8 1
274116 892
157228490 -1 15 1
specification.
155654728 13 12 1
155654512
155654728 14 8 1
157228126
1337396734 22 18 1
1 8 8 12 50331903 201326591 1
155653420 13 12 1
155653648
155653420 14 8 1
1482103382
641139882 -1 67 1
S-CASE will automatically append the appropriate suffixes to these
155653444 13 12 1
155653672
155653444 14 8 1
1482103254
641139754 -1 63 1
script to suit your compiler and build the sample application.
641142318 -1 26 1
fill in the method stubs.
1108285610 -1 61 1
stubs in the body file. This technique can be used to create
155653072 13 12 1
155653228
155653072 14 8 1
641140270
641139206 41 82 1
641139206 42 82 1
28 0 1
641139206 51 56 1
641139206 54 40 1
0 0 641139206 0 0 641145710
0 30001
641139246 27 16 1
-3500 -4000 2276 5000
641139262 12 6 1
0
0
641139268 21 4 1
1482102122
641139272 28 8 1
-3500 500
1482104742 41 82 1
1482104742 42 82 1
28 0 1
1482104742 51 56 1
1482104742 54 40 1
0 0 1482104742 0 0 641144650
0 30001
1482104782 27 16 1
-3500 -4000 2276 5000
1482104798 12 6 1
0
0
1482104804 21 4 1
1482102074
1482104808 28 8 1
-3500 500
1482104422 -1 48 1
- Complete the Rectangle implementation (cont.)
155653876 13 12 1
155650084
155653876 14 8 1
155653936
155654512 13 12 1
155654608
155654512 14 8 1
157228446
1482103934 -1 56 1
c) Both files have a copyright message at the top. This
155653648 13 12 1
155653792
155653648 14 8 1
1482102502
1482103810 -1 61 1
names to create the header and body files. By default, these
155653672 13 12 1
155653816
155653672 14 8 1
1482102382
641141682 -1 30 1
- Filling in the method stubs
641141122 63 82 1
641141122 41 82 1
641141122 42 82 1
28 4 0
641141122 51 56 1
641141122 54 40 1
162990746 1337393846 0 0 162989814 0
0 30011
641141162 27 16 1
0 0 0 0
641141178 12 6 1
0
0
641141184 21 4 1
162992650
641141188 28 8 1
0 0
641140966 -1 74 1
// -MQBeg- [Op_Body] [Rectangle::Rectangle] <00000066.0000001B> Retained!
155653228 13 12 1
155653372
155653228 14 8 1
641139626
155653348 13 12 1
155648848
155653348 14 8 1
1108284718
157228126 -1 70 1
b) Add an attribute called "Length" by clicking the "Attributes: Add"
155654608 13 12 1
155654392
155654608 14 8 1
157227994
1482103382 -1 52 1
message can be altered in several ways. The easiest
155653792 13 12 1
155653948
155653792 14 8 1
1348935512
1482103254 -1 64 1
suffixes are .h and .cc, but you can change them from the class
155653816 13 12 1
155653972
155653816 14 8 1
1482101846
641140270 -1 58 1
Length=10; Height=5; //<-------- ADD THIS LINE
155653372 13 12 1
155653492
155653372 14 8 1
1348933184
155648848 13 12 1
155654236
155648848 14 8 1
1108282134
157228446 -1 41 1
button. Set up the attribute as follows:
155654392 13 12 1
155654200
155654392 14 8 1
157220886
1482102502 -1 66 1
is to alter the file called cpyright.msg in the S-CASE directory.
155653948 13 12 1
155654104
155653948 14 8 1
1482101406
1482102382 -1 58 1
diagram Options menu. Also on platforms, where file names
155653972 13 12 1
155654128
155653972 14 8 1
1482101286
641139626 -1 65 1
// -MQEnd- [Op_Body] [Rectangle::Rectangle] <00000066.0000001B>
155653492 13 12 1
155653744
155653492 14 8 1
1348935428
1482102122 22 18 1
1 8 8 9 117440512 201326591 0
1482102074 22 18 1
1 8 8 9 117440512 201326591 0
1108284718 -1 36 1
the source for the Rectangle class.
155654236 13 12 1
155653000
155654236 14 8 1
1108284030
157227994 -1 21 1
Name: Length
155654200 13 12 1
155654296
155654200 14 8 1
157228098
641139994 22 18 1
1 8 8 9 117440512 201326591 0
155654104 13 12 1
155654224
155654104 14 8 1
1482100898
1482101846 -1 61 1
cannot be more than 8 characters (such as DOS), the names of
155654128 13 12 1
155649964
155654128 14 8 1
1348934804
1482104222 42 82 1
28 0 0
1482104222 51 56 1
1482104222 54 40 1
1336346206 1332153310 0 0 162994250 0
0 0
1482104262 27 16 1
18334 916 20999 33831
1482104278 12 6 1
155654884
1
1482104284 21 4 1
1482097366
1482104288 28 8 1
18334 916
155653744 13 12 1
155653900
155653744 14 8 1
155653888
1108282134 -1 60 1
e) Add another constructor that takes the style, length and
155653000 13 12 1
155648908
155653000 14 8 1
1108285290
157220886 -1 19 1
Class: int
155654296 13 12 1
155653768
155654296 14 8 1
155654056
1482101406 -1 60 1
d) Both files contain several sections delimited by -MQBeg-
155654224 13 12 1
155654320
155654224 14 8 1
1348932836
1482101286 -1 55 1
the generated files will be truncated to 8 characters.
155653720 13 12 1
155654416
155653720 14 8 1
1482096758
155653900 13 12 1
155654032
155653900 14 8 1
1482101614
1108284030 -1 56 1
height as arguments. Set up the constructor as follows:
155648908 13 12 1
155650852
155648908 14 8 1
1108282730
157228098 -1 24 1
Access: private
155653768 13 12 1
155653924
155653768 14 8 1
163519382
1482100898 -1 33 1
and -MQEnd-. Here is an example:
155654320 13 12 1
155654440
155654320 14 8 1
1482099930
1332152018 42 82 1
28 0 0
1332152018 51 56 1
1332152018 54 40 1
1108284546 1482102902 0 0 162994250 0
0 0
1332152058 27 16 1
498919 1164 529321 35496
1332152074 12 6 1
155648056
21
1332152080 21 4 1
641144094
1332152084 28 8 1
498919 1164
155653888 -1 8 1
inline
155654032 13 12 1
155654176
155654032 14 8 1
1482101082
1108285290 -1 41 1
Check the Constructor check box.
155650852 13 12 1
155651536
155650852 14 8 1
1108279558
1108280630 -1 58 1
implementation classes visible only in the source module.
155653924 13 12 1
155653624
155653924 14 8 1
163519254
155650084 13 12 1
155650408
155650084 14 8 1
1108283974
155654440 13 12 1
155654536
155654440 14 8 1
1482099478
1482101614 -1 57 1
Rectangle::Rectangle(char style, int length, int height)
155654176 13 12 1
155654272
155654176 14 8 1
1482100606
1108282730 -1 54 1
Arguments: char style, int length, int height
155651536 13 12 1
155655892
155651536 14 8 1
155651716
163519382 -1 71 1
c) Similarly add another attribute to class Rectangle called "Height":
155653624 13 12 1
155653396
155653624 14 8 1
163512446
1482099930 -1 70 1
// -MQBeg- [Declarations_1] [Rectangle] <00000066.00000015> Retained!
155654536 13 12 1
155654632
155654536 14 8 1
1348930460
1482101082 -1 74 1
// -MQBeg- [Op_Init] [Rectangle::Rectangle] <00000066.0000001C> Retained!
155654272 13 12 1
155654368
155654272 14 8 1
1482100198
1108279558 -1 61 1
Check the inline box to make the constructor inline.
155655892 13 12 1
155652460
155655892 14 8 1
1108286858
163519254 -1 21 1
Name: Height
155653396 13 12 1
155653096
155653396 14 8 1
163513810
1482099478 -1 61 1
// -MQEnd- [Declarations_1] [Rectangle] <00000066.00000015>
155654632 13 12 1
155654764
155654632 14 8 1
1482098246
1482100606 -1 58 1
: Shape(style) //<-------- ADD THIS LINE
155654368 13 12 1
155654488
155654368 14 8 1
1348934516
1482100814 24 22 1
1 1 2 0 117440512 2 201326591 201326591
155652460 13 12 1
155651608
155652460 14 8 1
1108282934
163512446 -1 19 1
Class: int
155653096 13 12 1
155652892
155653096 14 8 1
155653276
1482100506 -1 37 1
To do this simply choose File-Print.
155654764 13 12 1
155654836
155654764 14 8 1
1482097818
1482100198 -1 65 1
// -MQEnd- [Op_Init] [Rectangle::Rectangle] <00000066.0000001C>
155654488 13 12 1
155654584
155654488 14 8 1
1482099262
1108286858 -1 48 1
f) Override the Draw() method from class Shape.
155651608 13 12 1
155653468
155651608 14 8 1
1108282450
163513810 -1 24 1
Access: private
155652892 13 12 1
155650612
155652892 14 8 1
163519186
1482098246 -1 70 1
If the -MQBeg- line ends with the word "Retained!", the corresponding
155654836 13 12 1
155654932
155654836 14 8 1
1482097474
155654416 13 12 1
155655196
155654416 14 8 1
1336345962
155654584 13 12 1
155654704
155654584 14 8 1
1482098426
1108282934 -1 30 1
Here's a shortcut to do this:
155653468 13 12 1
155653840
155653468 14 8 1
1108286166
641146330 -1 30 1
- Other things to try (cont.)
155650612 13 12 1
155650888
155650612 14 8 1
163512378
1482097818 -1 69 1
section is retained even if you regenerate code via S-CASE. In other
155654932 13 12 1
155655004
155654932 14 8 1
1482097134
1482099262 -1 74 1
// -MQBeg- [Op_Body] [Rectangle::Rectangle] <00000066.0000001C> Retained!
155654704 13 12 1
155651344
155654704 14 8 1
1482097990
1108282450 -1 50 1
Click the "Operations: Inherited" button.
155653840 13 12 1
155653696
155653840 14 8 1
1108286394
163519186 -1 66 1
d) Now add the default constructor to class Rectangle by clicking
155650888 13 12 1
155649628
155650888 14 8 1
163513766
1482097474 -1 62 1
words, you can type anything between the -MQBeg- line and the
155655004 13 12 1
155651272
155655004 14 8 1
1482096834
1482098426 -1 58 1
Length=length; Height=height; //<-------- ADD THIS LINE
1108286166 -1 45 1
This shows the inherited operations.
155653696 13 12 1
155653996
155653696 14 8 1
1108284862
163512378 -1 63 1
the "Operations: Add" button. Set up the operation as follows:
155649628 13 12 1
155649052
155649628 14 8 1
163519326
1482097134 -1 65 1
corresponding -MQEnd- line and S-CASE will preserve this section
1482097990 -1 65 1
// -MQEnd- [Op_Body] [Rectangle::Rectangle] <00000066.0000001C>
1108286394 -1 64 1
Select the Draw() operation of Shape by clicking on it.
155653996 13 12 1
155654152
155653996 14 8 1
1108280814
163513766 -1 41 1
Check the Constructor check box.
1482096834 -1 66 1
across code regenerations. All other areas of the source file are
1108284862 -1 35 1
Click the Override button.
155654152 13 12 1
155654344
155654152 14 8 1
155654248
163519326 -1 49 1
The method name is filled automatically.
1108280814 -1 59 1
A copy of the Draw() method is now in the Rectangle class.
155654344 13 12 1
155654464
155654344 14 8 1
1108283386
162992418 15 30 1
40 6.000000 4.500000 1 13 0.100000
155654464 13 12 1
155654560
155654464 14 8 1
1108279762
1108283386 -1 60 1
g) Double click on the Draw() method in the Rectangle class
155654560 13 12 1
155654680
155654560 14 8 1
1108279914
1108279762 -1 63 1
to bring up its specification. Change the method to be virtual
155654680 13 12 1
155654788
155654680 14 8 1
155654860
1108279914 -1 25 1
instead of pure virtual.
155654788 13 12 1
155654956
155654788 14 8 1
1108281086
155650408 13 12 1
155653564
155650408 14 8 1
1108285238
155654956 13 12 1
155655076
155654956 14 8 1
155655028
1108281086 -1 44 1
h) Close the Rectangle class specification.
155655076 13 12 1
155655124
155655076 14 8 1
1108281614
1482098986 64 61 1
S
1482098986 31 60 1
1482098986 50 60 1
1482098986 51 56 1
1482098986 54 40 1
1337393266 162993982 0 0 162989814 0
0 0
1482099026 27 16 1
-1000 -1000 1000 1000
1482099042 23 4 1
162990442
155655124 13 12 1
155653348
155655124 14 8 1
1108283762
1108281614 -1 56 1
i) Select the Rectangle class by clicking on it. Choose
1108283762 -1 52 1
"Generate Code" from the actions menu to regenerate
0 -1 -1 0