⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cppfunca.sct

📁 c#设计模式WithCla
💻 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
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
}
] 

	//Operator= Assignment Operator alternative to compiler provided operator=
        //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	
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 0 ]
[  //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 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 	
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
			//Change C array to C++ collection for 1:M data members 	
ostream& operator<< (ostream& os, 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_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;
  } ]	
  return os;
}			

			//Operator>> insertion for cin
			//Change C array to C++ collection for 1:M data members 	 
istream& operator>> (istream& is, CLASS_NAME$& a$CLASS_NAME)
{ int i = 0;
[  is >> (BASE_CLASS &) a$CLASS_NAME;]
  cout << "\nEnter Object Attribute Values or 0 - Class CLASS_NAME"; 
SELECT_WHEN ATTRIBUTE_IS_NORMAL
[  cout << "\nEnter ATTRIBUTE_NAME : " << endl;
   is >> a$CLASS_NAME$.$ATTRIBUTE_NAME;]		
[  is >> a$CLASS_NAME$.$AGGREGATION_ONE_NAME;]
[  if (a$CLASS_NAME$.$ASSOCIATION_ONE_NAME != &a$CLASS_NAME$.null$ASSOCIATION_ONE_CLASS) is >> *$a$CLASS_NAME$.$ASSOCIATION_ONE_NAME ; ]
[  for (i = 0; i < maxNumberOf$AGGREGATION_MANY_CLASS$s; i++) is >> a$CLASS_NAME$.$AGGREGATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] ; ]
[  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)  is >> *a$CLASS_NAME$.$ASSOCIATION_MANY_NAME LITERAL_SYMBOL[i LITERAL_SYMBOL] ;
  } ]	
  return is;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -