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

📄 vc15fu1.sct

📁 c#设计模式WithCla
💻 SCT
字号:
// Class: CLASS_NAME

//////////////////////////.cpp file/////////////////////////////////////////////////////
#include "stdafx.h"
#include "TRUNCATE_EIGHT$CLASS_NAME$.h"    				

SELECT_WHEN ATTRIBUTE_IS_STATIC
[ATTRIBUTE_TYPE CLASS_NAME$::$ATTRIBUTE_NAME = ATTRIBUTE_INITIAL_VALUE$; ]

// 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_WITHOUT_DEFAULT) CPP_OPERATION_CONSTANT
{
  OPERATION_CODE
}
] 

			//Operator= Assignment Operator
			//Commented Out code assigns pointers for 1:1 and 1:M associated object data members 	
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 = a$CLASS_NAME$.$ASSOCIATION_ONE_NAME;]	
[  
	POSITION pos = AGGREGATION_MANY_NAME.GetHeadPosition();
	AGGREGATION_MANY_CLASS * next$AGGREGATION_MANY_CLASS;
	POSITION pos2 = a$CLASS_NAME.AGGREGATION_MANY_NAME.GetHeadPosition();
	AGGREGATION_MANY_CLASS * next$AGGREGATION_MANY_CLASS$2;
	while(pos)
	 {
	   next$AGGREGATION_MANY_CLASS = (AGGREGATION_MANY_CLASS *)AGGREGATION_MANY_NAME.GetNext(pos);
	   next$AGGREGATION_MANY_CLASS$2 = (AGGREGATION_MANY_CLASS *)a$CLASS_NAME.AGGREGATION_MANY_NAME.GetNext(pos2);
	   next$AGGREGATION_MANY_CLASS = next$AGGREGATION_MANY_CLASS$2;
	 }
]
[ 
 	pos = ASSOCIATION_MANY_NAME.GetHeadPosition();
	ASSOCIATION_MANY_CLASS * next$ASSOCIATION_MANY_CLASS;
	pos2 = a$CLASS_NAME.ASSOCIATION_MANY_NAME.GetHeadPosition();
	ASSOCIATION_MANY_CLASS * next$ASSOCIATION_MANY_CLASS$2;
	while(pos)
	 {
	   next$ASSOCIATION_MANY_CLASS = (ASSOCIATION_MANY_CLASS *)ASSOCIATION_MANY_NAME.GetNext(pos);
	   next$ASSOCIATION_MANY_CLASS$2 = (ASSOCIATION_MANY_CLASS *)a$CLASS_NAME.ASSOCIATION_MANY_NAME.GetNext(pos2);
	   next$ASSOCIATION_MANY_CLASS = next$ASSOCIATION_MANY_CLASS$2;
	 }

]
  return *this;													
}					

			//Operator== Equality Operator
			//Update for 1:M association object data members
BOOL CLASS_NAME::operator== (const CLASS_NAME$& a$CLASS_NAME) const
{ 
  BOOL bTest1;
  BOOL bTest2 = TRUE;
  bTest1 = [ (BASE_CLASS$::operator== (a$CLASS_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
SELECT_WHEN ATTRIBUTE_IS_NORMAL
[ (ATTRIBUTE_NAME == a$CLASS_NAME$.ATTRIBUTE_NAME) &DELETE_LAST_SYMBOL&DELETE_LAST_SYMBOL];
                          
                          
   [  
	POSITION pos = AGGREGATION_MANY_NAME.GetHeadPosition();
	AGGREGATION_MANY_CLASS * next$AGGREGATION_MANY_CLASS;
	POSITION pos2 = a$CLASS_NAME.AGGREGATION_MANY_NAME.GetHeadPosition();
	AGGREGATION_MANY_CLASS * next$AGGREGATION_MANY_CLASS$2;
	while(pos)
	 {
	   next$AGGREGATION_MANY_CLASS = (AGGREGATION_MANY_CLASS *)AGGREGATION_MANY_NAME.GetNext(pos);
	   next$AGGREGATION_MANY_CLASS$2 = (AGGREGATION_MANY_CLASS *)a$CLASS_NAME.AGGREGATION_MANY_NAME.GetNext(pos2);
	   bTest2 &= (next$AGGREGATION_MANY_CLASS == next$AGGREGATION_MANY_CLASS$2);
	 }
   ]     
   [
	pos = ASSOCIATION_MANY_NAME.GetHeadPosition();
	ASSOCIATION_MANY_CLASS * next$ASSOCIATION_MANY_CLASS;
	pos2 = a$CLASS_NAME.ASSOCIATION_MANY_NAME.GetHeadPosition();
	ASSOCIATION_MANY_CLASS * next$ASSOCIATION_MANY_CLASS$2;
	while(pos)
	 {
	   next$ASSOCIATION_MANY_CLASS = (ASSOCIATION_MANY_CLASS *)ASSOCIATION_MANY_NAME.GetNext(pos);
	   next$ASSOCIATION_MANY_CLASS$2 = (ASSOCIATION_MANY_CLASS *)a$CLASS_NAME.ASSOCIATION_MANY_NAME.GetNext(pos2);
	   bTest2 &= (next$ASSOCIATION_MANY_CLASS == next$ASSOCIATION_MANY_CLASS$2);
	 }
   ]
                          

	return (bTest1 && bTest2);
}			

			//Operator<< extraction for cout
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;]

[  
	POSITION pos = a$CLASS_NAME.AGGREGATION_MANY_NAME.GetHeadPosition();
	AGGREGATION_MANY_CLASS * next$AGGREGATION_MANY_CLASS;
	while(pos)
	 {
	   next$AGGREGATION_MANY_CLASS = (AGGREGATION_MANY_CLASS *)a$CLASS_NAME.AGGREGATION_MANY_NAME.GetNext(pos);
	   os << *next$AGGREGATION_MANY_CLASS;
	 }
]
[ 
 	pos = a$CLASS_NAME.ASSOCIATION_MANY_NAME.GetHeadPosition();
	ASSOCIATION_MANY_CLASS * next$ASSOCIATION_MANY_CLASS;
	while(pos)
	 {
	   next$ASSOCIATION_MANY_CLASS = (ASSOCIATION_MANY_CLASS *)a$CLASS_NAME.ASSOCIATION_MANY_NAME.GetNext(pos);
	   if (next$ASSOCIATION_MANY_CLASS != NULL) 
	   	   os << next$ASSOCIATION_MANY_CLASS;
	 }

]

  return os;
}			

			//Operator>> insertion for cin
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 != 0) is >> *$a$CLASS_NAME$.$ASSOCIATION_ONE_NAME ; ]
[  
	POSITION pos = a$CLASS_NAME.AGGREGATION_MANY_NAME.GetHeadPosition();
	AGGREGATION_MANY_CLASS * next$AGGREGATION_MANY_CLASS;
	while(pos)
	 {
	   next$AGGREGATION_MANY_CLASS = (AGGREGATION_MANY_CLASS *)a$CLASS_NAME.AGGREGATION_MANY_NAME.GetNext(pos);
	   is  >> *next$AGGREGATION_MANY_CLASS;
	 }
]
[ 
 	pos = a$CLASS_NAME.ASSOCIATION_MANY_NAME.GetHeadPosition();
	ASSOCIATION_MANY_CLASS * next$ASSOCIATION_MANY_CLASS;
	while(pos)
	 {
	   next$ASSOCIATION_MANY_CLASS = (ASSOCIATION_MANY_CLASS *)a$CLASS_NAME.ASSOCIATION_MANY_NAME.GetNext(pos);
	   if (next$ASSOCIATION_MANY_CLASS != NULL) 
	   	   is >> *next$ASSOCIATION_MANY_CLASS;
	 }

]
  return is;
}				

⌨️ 快捷键说明

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