|
Bilaga 1 Riktlinjer för nyutvecklande av projekt i Visual C++ Bilaga 2 Delar av enkätsvaren i diagramform |
Projektspecifika klasser skall gå att identifiera projektet i prefixet. Klasser till projektet RoofCon skall ha CR ( ClassRoofcon ) som prefix. Till exempel CRCielingSpecial.
Vissa klasser skall dessutom gå att identifiera genom ett postfix. Dessa är:
|
Klass av "typen" |
Postfix |
Exempel |
|
CPtrArray CPtrList CDialog |
Ar List Dlg |
CRWallTypeAr CRWallTypeList CRAboutDlg |
En CObArray som man i enkomt skapat objekt för att ha i vektorn skall ha prefixet a. Till exempel aPntSquare för en vektor med instanser av klassen CGPoint.
En CObArray som man bara lagrar pekare till objekt och egentligen inte objekten skall ha prefixet ap. Till exempel apPntSquare för en vektor i vilken man lagrar pekare till objekt av klassen CGPoint.
|
Typ |
Prefix |
Typ |
Prefix |
|
Allmänt medlemsvariabler globalvariabel statisk medlemsvariabel Vanliga typer unsigned char int short long float double strängar \0 terminerade strängar void(funktioner) |
m_ g_ s_ u c i n l f d sn sz v |
Windowstyper COLORREF RECT POINT SIZE HANDLE UINT BOOL WORD BYTE DWORD Tilläggs prefix pointer array |
cr rc pt size h ui b w by dw p a |
Variabler som är av "typen" en klass skall inte ha något prefix, utom dessa:
|
Klass |
Prefix |
Exempel |
|
CString CRect CGRect CPoint CGPoint CSize CPen CBrush CDC |
s Rect Rc Point Pnt Size Pen Brush DC |
sWallName RectOkButton RcCancelButton PointCrossing PntCrossing SizeWallSquare PenBlue BrushDotted DCMyOwn |
Variabler som är av "typen" en pekare till en klass skall ha prefixet p.
Exempel
Övriga begynnelsebokstäver skall inte användas.
För heltal skall typen short användas, utom då man behöver 32 bitars heltal eller vid kommunikation med Windows där Windows har använt typen int.
Variabelnamnen x och y får användas som integers utan något prefix.
Variabelnamn som bara består av ett tecken exklusive prefixet skall också vara av gemen storlek.
Makron skrivs med versaler.
Konstanter skrivs med versaler och börjar med $.
För loopvariabler godtas även n1 ,n2 ,n3 ,... som fullständiga variabelnamn.
Exempel
|
m_pPositions apGarbage nFirstVertex DECLARE_DYNAMIC $MAXLENGTH fx, fy |
en medlemsvariabel av typen pekare till en klass en array av pekare ett vanligt heltal ett makro en konstant ett teckens variabler med prefix |
Strukturerna skall ha t som prefix och _tab som postfix. Variabler av den typen skall ha prefixet t. Vid typedef så skall typen skrivas som strukturen utan postfix och helt med versaler.
Exempel
struct tRoofParameters_tab {
float fHeight;
float fAngle;
float fWidth;
float fLength;
};
struct tRoofParameters_tab tRoofOne;
struct tRoofParameters_tab* ptRoofTwo;
typedef struct tRoofParameters_tab {
float fHeight;
float fAngle;
float fWidth;
float fLength;
} TROOFPARAMETERS;
TROOFPARAMETERS tRoofOne;
TROOFPARAMETERS* ptRoofTwo;
|
IDR_ IDD_ IDC_ IDI_ IDB_ IDS_ IDM_ ID_ |
För multipla resurstyper till exempel menyer och acceleratorer. För dialogresurser. För dialogkontroller och för markörresurser. För ikonresurser. För bitmapsresurser. För strängresurser. För menyalternativ som inte använder MFC’s kommandoarkitektur. För menyalternativ som använder MFC’s kommandoarkitektur. |
Konstanternas värde skall inte vara lägre än 100.
//------------------------------------------------------------- short nSampleFunction(short nNumber, float fValue) tom rad // // Här skall funktionen kommenteras med en utförlig // kommentar. // // input - // short nNumber : Kommentar till variabeln // float fValue : Kommentar till variabeln // // return - // Kommentar till vad funktionen returnerar // // // written: 951016 ANI // updated: 951103 ANI //funktionens kod
För identifiering av vem som skrivit, respektive updaterat koden används första bokstaven ur förnamnet och de två första bokstäverna i efternamnet. ÅÄÖ ersätts till AAO. Till exempel Andreas Nilsson blir ANI och Mikael Hägglund blir MHA.
Övriga kommentarer i koden skall se ut precis som i c. Notera att kommentaren inte är indragen, utan den står vid vänstra kanten.
Exempel
while (szTmp1[i1]=szTmp2[i1++]); //ANI-- // Kommentar till koden //..... szTmp1[i1]=0;
//
// class: CMySpecialClassII
//
// En beskrivning av klassen ges här.
//
// derived from:
// CPropertyPage
// CMySpecialClass0
// CMySpecialClassIa, CMySpecialClassIb
//
// members -
// m_fMyFloatValue : Kommentar till variabeln
// m_hMyWindow : Kommentar till variabeln
//
//
#include "..."
:
class CMySpecialClassII :
public CMySpecialClassIa, public CMySpecialClassIb
klassens kod
Kommentarerna till funktionerna och procedurerna skrivs i .cpp filen.
Vi frågade efter hur de prioriterade olika saker i programmet. Av enkätsvaren att döma prioriterar användarna flexibilitet, användarvänlighet och ökad säkerhet (det vill säga stabilitet hos programmet) främst. Vi vill poängtera att vi fick in få svar, endast sju stycken, varför det är svårt att dra alltför långtgående slutsatser.
![]() |
![]() |
|
Program- prioriteter |
Ekenfors |
Villa- element |
Larsson hus |
Eksjö hus |
Nya Mellby |
Nordiska trähus |
Anderssons sågverk |
|
Flexibilitet Användarvänlighet Ekonomi Snabbhet 3d-presentation Ökad säkerhet |
2 3 5 6 4 1 |
4 1 3 5 6 2 |
1 3 5 4 6 2 |
1 2 5 3 6 4 |
3 2 4 5 6 1 |
1 2 5 3 6 4 |
5 1 3 6 4 2 |
Tabell 2 visar hur de svarande prioriterar utdata. 1 är viktigast och 3 minst viktigt.
|
Utdata- prioriteter |
Ekenfors |
Villa- element |
Larsson hus |
Eksjö hus |
Nya Mellby |
Nordiska trähus |
Anderssons sågverk |
|
Takplansritning Samkörd kaplista Samkörd kalkyl |
1 2 3 |
1 2 3 |
1 2 3 |
1 2 3 |
2 3 1 |
1 2 3 |
1 3 2 |
Resultatet av enkäten sammanfaller väl med våra egna prioriteringar när vi skrev RoofCon.