| 
									
										
										
										
											2023-11-10 02:59:41 +09:00
										 |  |  | ## test class instantiation methods
 | 
					
						
							| 
									
										
										
										
											2022-03-17 13:22:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-02 01:41:41 +09:00
										 |  |  | defclass A | a b c |  { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	defun ::* newInstance(x y z) { | 
					
						
							|  |  |  | 		set a x; | 
					
						
							|  |  |  | 		set b y; | 
					
						
							|  |  |  | 		set c z; | 
					
						
							|  |  |  | 		return self; | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	defun get-a() { return self.a; }; | 
					
						
							|  |  |  | 	defun get-b() { return self.b; }; | 
					
						
							|  |  |  | 	defun get-c() { return self.c; }; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | defclass B ::: A | d e f | { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	defun ::* newInstance(x y z) { | 
					
						
							|  |  |  | 		super:newInstance (* x 2) (* y 2) (* z 2); | 
					
						
							|  |  |  | 		set d x; | 
					
						
							|  |  |  | 		set e y; | 
					
						
							|  |  |  | 		set f z; | 
					
						
							|  |  |  | 		return self; | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	defun sum() { | 
					
						
							|  |  |  | 		return (+ (super:get-a) (super:get-b) (super:get-c) self.d self.e self.f); | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set a ((B:newInstance 1 2 3):sum); | 
					
						
							|  |  |  | if (/= a 18) { printf "ERROR: a must be 18\n"; } | 
					
						
							|  |  |  | else { printf "OK %d\n" a; }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set b (B:newInstance 2 3 4); | 
					
						
							|  |  |  | set a (b:get-a); | 
					
						
							|  |  |  | (if (/= a 4) (printf "ERROR: a must be 4\n") | 
					
						
							|  |  |  |  else (printf "OK %d\n" a)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set a (b:get-b); | 
					
						
							|  |  |  | (if (/= a 6) (printf "ERROR: a must be 6\n") | 
					
						
							|  |  |  |  else (printf "OK %d\n" a)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set a (b:get-c); | 
					
						
							|  |  |  | (if (/= a 8) (printf "ERROR: a must be 8\n") | 
					
						
							|  |  |  |  else (printf "OK %d\n" a)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set a (b:sum); | 
					
						
							|  |  |  | (if (/= a 27) (printf "ERROR: a must be 27\n") | 
					
						
							|  |  |  |  else (printf "OK %d\n" a)) | 
					
						
							| 
									
										
										
										
											2022-03-17 13:22:17 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 |