📄 cppfunc3.sct
字号:
// Class: CLASS_NAME
//////////////////////////.cpp file/////////////////////////////////////////////////////
#include "$TRUNCATE_EIGHT$CLASS_NAME$.h"
SELECT_WHEN ATTRIBUTE_IS_STATIC
[ATTRIBUTE_TYPE CLASS_NAME$::$ATTRIBUTE_NAME = ATTRIBUTE_INITIAL_VALUE$; //Static data member initialization]
// Functions for class CLASS_NAME
[
// Function: OPERATION_NAME
// Purpose: OPERATION_COMMENT1
// Parameters: CPP_OPERATION_PARAMETERS
// Comments: OPERATION_COMMENT2
OPERATION_RETURN_TYPE CLASS_NAME::OPERATION_NAME(CPP_OPERATION_PARAMETERS) CPP_OPERATION_CONSTANT
{ OPERATION_CODE
} ]
//Default constructor alternative to compiler provided default constructor
//Association object data member pointers initialized to null association object NO_OUTPUT_BEGIN
//Ensure correct initial values are entered in the Attribute Specification NO_OUTPUT_END
CLASS_NAME::CLASS_NAME ()
SELECT_WHEN LOGICAL_NOT ATTRIBUTE_IS_STATIC [NO_RETURN NO_REPEAT: ATTRIBUTE_NAME(ATTRIBUTE_INITIAL_VALUE),DELETE_LAST_SYMBOL]
{ [ASSOCIATION_ONE_NAME = &null$ASSOCIATION_ONE_CLASS; //Initialization to null association object ]
[AGGREGATION_MANY_NAME$Index = 0; //Index for array of 1:M aggregation part objects ]
[ASSOCIATION_MANY_NAME$Index = 0; //Index for array of 1:M association objects ]
//Initialization of array of 1:M association objects to null association objects
[for ( int i = 0; i < maxNumberOf$ASSOCIATION_MANY_CLASS$s; i++) ASSOCIATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] = &null$ASSOCIATION_MANY_CLASS; ]
}
//Constructor with arguments
//Update to argument list to initialize base class data members and const data members
//e.g. (int aNumber) : BaseClass (aNumber) , constMinimumValue (aMinimumValue)
CLASS_NAME::CLASS_NAME ( SELECT_WHEN LOGICAL_NOT ATTRIBUTE_IS_STATIC [NO_RETURN ATTRIBUTE_TYPE a$ATTRIBUTE_NAME,DELETE_LAST_SYMBOL] )
[NO_RETURN NO_REPEAT: BASE_CLASS$() ,DELETE_LAST_SYMBOL]
SELECT_WHEN ATTRIBUTE_IS_CONSTANT [//NO_RETURN NO_REPEAT: ATTRIBUTE_NAME (a$ATTRIBUTE_NAME),DELETE_LAST_SYMBOL]
{ SELECT_WHEN ATTRIBUTE_IS_NORMAL [ATTRIBUTE_NAME = a$ATTRIBUTE_NAME; //Initialization of attributes ]
[AGGREGATION_MANY_NAME$Index = 0; //Index for array of 1:M aggregation part objects ]
[ASSOCIATION_MANY_NAME$Index = 0; //Index for array of 1:M association objects ]
[ASSOCIATION_ONE_NAME = &null$ASSOCIATION_ONE_CLASS; //Initialization to null association object ]
//Initialization of array of 1:M association objects to null association objects
[for ( int i = 0; i < maxNumberOf$ASSOCIATION_MANY_CLASS$s; i++) ASSOCIATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] = &null$ASSOCIATION_MANY_CLASS; ]
}
//Copy constructor alternative to compiler provided default copy constructor NO_OUTPUT_BEGIN
//Update initializer list for const data members, e.g. : constMinimumValue (aCar.minimumValue)
//Copy alternatives for association objects: (1) initialize association object to nullAssociation Object
//(2) Shallow copy to copy pointers of association objects (3) Deep copy to create new association objects
//and copy values of association objects
//Commented out code assigns 1:1 and 1:M association object data member pointers for shallow copy
//Remove // if you desire to assign pointers NO_OUTPUT_END
CLASS_NAME::CLASS_NAME (const CLASS_NAME$& a$CLASS_NAME )
[NO_RETURN NO_REPEAT: BASE_CLASS (a$CLASS_NAME),DELETE_LAST_SYMBOL]
SELECT_WHEN ATTRIBUTE_IS_CONSTANT [//NO_RETURN NO_REPEAT: ATTRIBUTE_NAME (a$CLASS_NAME$.$ATTRIBUTE_NAME),DELETE_LAST_SYMBOL]
{int i = 0;
[ AGGREGATION_MANY_NAME$Index = 0; //Index for array of 1:M aggregation part objects ]
[ ASSOCIATION_MANY_NAME$Index = 0; //Index for array of 1:M association objects ]
SELECT_WHEN ATTRIBUTE_IS_NORMAL [ATTRIBUTE_NAME = a$CLASS_NAME$.$ATTRIBUTE_NAME;]
[ AGGREGATION_ONE_NAME = a$CLASS_NAME$.$AGGREGATION_ONE_NAME;]
[ ASSOCIATION_ONE_NAME = &null$ASSOCIATION_ONE_CLASS; //Initialization to null association object ]
[ //ASSOCIATION_ONE_NAME = a$CLASS_NAME$.$ASSOCIATION_ONE_NAME; //Commented out shallow copy]
[ for ( i = 0; i < maxNumberOf$AGGREGATION_MANY_CLASS$s; i++) AGGREGATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] = a$CLASS_NAME$.$AGGREGATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] ; ]
[ for ( i = 0; i < maxNumberOf$ASSOCIATION_MANY_CLASS$s; i++) ASSOCIATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] = &null$ASSOCIATION_MANY_CLASS; //Initialization of pointers to null association object ]
[ //Commented out shallow copy
[ //for ( i = 0; i < maxNumberOf$ASSOCIATION_MANY_CLASS$s; i++) ASSOCIATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] = a$CLASS_NAME$.$ASSOCIATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] ; ]
}
//Operator= Assignment Operator alternative to compiler provided operator= NO_OUTPUT_BEGIN
//Assignment alternatives for association objects: (1) initialize association object to nullAssociation Object
//(2) Shallow copy to copy pointers to association objects (3) Deep copy to copy value of association objects
//Commented out code copies pointers for 1:1 and 1:M association object data members for shallow copy NO_OUTPUT_END
CLASS_NAME& CLASS_NAME::operator= (const CLASS_NAME$& a$CLASS_NAME)
{ if (this == &a$CLASS_NAME) return *this;
int i = 0;
[ BASE_CLASS$::operator= (a$CLASS_NAME);]
SELECT_WHEN ATTRIBUTE_IS_NORMAL [ ATTRIBUTE_NAME = a$CLASS_NAME$.$ATTRIBUTE_NAME;]
[ AGGREGATION_ONE_NAME = a$CLASS_NAME$.$AGGREGATION_ONE_NAME;]
[ ASSOCIATION_ONE_NAME = &null$ASSOCIATION_ONE_CLASS; //Initialization to null association object ]
[ // ASSOCIATION_ONE_NAME = a$CLASS_NAME$.$ASSOCIATION_ONE_NAME;//Commented out shallow copy]
[ for (i = 0; i < maxNumberOf$AGGREGATION_MANY_CLASS$s; i++) AGGREGATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] = a$CLASS_NAME$.$AGGREGATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] ; ]
[ for (i = 0; i < maxNumberOf$ASSOCIATION_MANY_CLASS$s; i++) ASSOCIATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] = &null$ASSOCIATION_MANY_CLASS ; //Initialization of pointers to null association object ]
[ //for (i = 0; i < maxNumberOf$ASSOCIATION_MANY_CLASS$s; i++) ASSOCIATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] = a$CLASS_NAME$.$ASSOCIATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] ; ]
return *this;
}
//Operator== Equality Operator NO_OUTPUT_BEGIN
//No compiler generated operator== generated
//Comparison alternatives for association objects: (1) Do not compare association objects, (2) Do a shallow comparison
//to compare pointers of association objects (3) Do a deep comparison to compare the values of association objects
//Update for 1:M association object data members
//Change C array to C++ collection for 1:M data members NO_OUTPUT_END
int CLASS_NAME::operator== (const CLASS_NAME$& a$CLASS_NAME) const
{ return (
[ (BASE_CLASS$::operator== (a$CLASS_NAME)) &&]
[ //Equality check for 1:1 association data members for shallow comparison
//( ASSOCIATION_ONE_NAME == a$CLASS_NAME$.$ASSOCIATION_ONE_NAME) &&]
//Equality check for 1:1 aggregation part data members
[ ( AGGREGATION_ONE_NAME == a$CLASS_NAME$.$AGGREGATION_ONE_NAME) &&]
//Equality check for 1:M aggregation parts
//Update for the correct number of aggregation part objects
[ ( AGGREGATION_MANY_NAME LITERAL_SYMBOL[0 LITERAL_SYMBOL] == a$CLASS_NAME$.$AGGREGATION_MANY_NAME LITERAL_SYMBOL[0 LITERAL_SYMBOL])&&
( AGGREGATION_MANY_NAME LITERAL_SYMBOL[1 LITERAL_SYMBOL] == a$CLASS_NAME$.$AGGREGATION_MANY_NAME LITERAL_SYMBOL[1 LITERAL_SYMBOL])&&
( AGGREGATION_MANY_NAME LITERAL_SYMBOL[2 LITERAL_SYMBOL] == a$CLASS_NAME$.$AGGREGATION_MANY_NAME LITERAL_SYMBOL[2 LITERAL_SYMBOL])&&
( AGGREGATION_MANY_NAME LITERAL_SYMBOL[3 LITERAL_SYMBOL] == a$CLASS_NAME$.$AGGREGATION_MANY_NAME LITERAL_SYMBOL[3 LITERAL_SYMBOL])&&
]
//Equality check for 1:M association objects for shallow compare
//Update for the correct number of associated objects
[//( ASSOCIATION_MANY_NAME LITERAL_SYMBOL[0 LITERAL_SYMBOL] == a$CLASS_NAME$.$ASSOCIATION_MANY_NAME LITERAL_SYMBOL[0 LITERAL_SYMBOL])&&
//( ASSOCIATION_MANY_NAME LITERAL_SYMBOL[1 LITERAL_SYMBOL] == a$CLASS_NAME$.$ASSOCIATION_MANY_NAME LITERAL_SYMBOL[1 LITERAL_SYMBOL])&&
//( ASSOCIATION_MANY_NAME LITERAL_SYMBOL[2 LITERAL_SYMBOL] == a$CLASS_NAME$.$ASSOCIATION_MANY_NAME LITERAL_SYMBOL[2 LITERAL_SYMBOL])&&
//( ASSOCIATION_MANY_NAME LITERAL_SYMBOL[3 LITERAL_SYMBOL] == a$CLASS_NAME$.$ASSOCIATION_MANY_NAME LITERAL_SYMBOL[3 LITERAL_SYMBOL])&&
]
//Equality check for attribute data members
SELECT_WHEN ATTRIBUTE_IS_NORMAL [(ATTRIBUTE_NAME == a$CLASS_NAME$.$ATTRIBUTE_NAME) &DELETE_LAST_SYMBOL&DELETE_LAST_SYMBOL]
);
}
//Operator<< extraction for cout NO_OUTPUT_BEGIN
//Change C array to C++ collection for 1:M data members NO_OUTPUT_END
ostream& operator<< (ostream& os, const CLASS_NAME$& a$CLASS_NAME)
{ int i = 0;
[ os << (BASE_CLASS &) a$CLASS_NAME;]
os << "Object Attribute Values - Class CLASS_NAME" << endl;
SELECT_WHEN ATTRIBUTE_IS_NORMAL [ os << "ATTRIBUTE_NAME: " << a$CLASS_NAME$.$ATTRIBUTE_NAME << endl;]
SELECT_WHEN ATTRIBUTE_IS_CONSTANT [ os << "ATTRIBUTE_NAME: " << a$CLASS_NAME$.$ATTRIBUTE_NAME << endl;]
SELECT_WHEN ATTRIBUTE_IS_STATIC [ os << "ATTRIBUTE_NAME: " << a$CLASS_NAME$.$ATTRIBUTE_NAME << endl;]
[ os << " AGGREGATION_ONE_NAME$: " << a$CLASS_NAME$.$AGGREGATION_ONE_NAME << endl;]
[ if (a$CLASS_NAME$.$ASSOCIATION_ONE_NAME != &a$CLASS_NAME$.null$ASSOCIATION_ONE_CLASS) os << " ASSOCIATION_ONE_NAME$: " << *$a$CLASS_NAME$.$ASSOCIATION_ONE_NAME << endl;
[ for (i = 0; i < maxNumberOf$AGGREGATION_MANY_CLASS$s; i++) os << " AGGREGATION_MANY_NAME$: " << a$CLASS_NAME$.$AGGREGATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] << endl; ]
[ for (i = 0; i < maxNumberOf$ASSOCIATION_MANY_CLASS$s; i++)
{ if ( a$CLASS_NAME$.$ASSOCIATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] != &a$CLASS_NAME$.null$ASSOCIATION_MANY_CLASS) os << " ASSOCIATION_MANY_NAME$: " << *a$CLASS_NAME$.$ASSOCIATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] << endl;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -