82 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			82 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
|  | /****************************************************************************
 | ||
|  | 
 | ||
|  | Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED. | ||
|  | 
 | ||
|  | This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT | ||
|  | be copied by any method or incorporated into another program without | ||
|  | the express written consent of Aerospace C.Power. This Information or any portion | ||
|  | thereof remains the property of Aerospace C.Power. The Information contained herein | ||
|  | is believed to be accurate and Aerospace C.Power assumes no responsibility or | ||
|  | liability for its use in any way and conveys no license or title under | ||
|  | any patent or copyright and makes no representation or warranty that this | ||
|  | Information is free from patent or copyright infringement. | ||
|  | 
 | ||
|  | ****************************************************************************/ | ||
|  | 
 | ||
|  | #include "iot_io_api.h"
 | ||
|  | #include "iot_config_api.h"
 | ||
|  | #include "os_utils_api.h"
 | ||
|  | 
 | ||
|  | class class_test { | ||
|  | public: | ||
|  |     int len; | ||
|  |     int size; | ||
|  |     int print(int a, int b); | ||
|  |     int print(int a, int b, int c); | ||
|  | }; | ||
|  | 
 | ||
|  | int class_test::print(int a, int b) | ||
|  | { | ||
|  |     iot_printf("[class test] argv(%d,%d): rst: (%d)\n", a, b, a+b); | ||
|  | } | ||
|  | 
 | ||
|  | int class_test::print(int a, int b, int c) | ||
|  | { | ||
|  |     iot_printf("[class test] argv(%d,%d,%d): rst: (%d)\n", a, b, c, a + b + c); | ||
|  | } | ||
|  | 
 | ||
|  | class temp_test { | ||
|  | public: | ||
|  |     template<typename T> | ||
|  |     int add(const T& t) { | ||
|  |         iot_printf("[template test] argv(%d)\n", t); | ||
|  |        return t*2; | ||
|  |     } | ||
|  | }; | ||
|  | 
 | ||
|  | class_test g_test; | ||
|  | uint32_t cpp_feature_test() | ||
|  | { | ||
|  |     temp_test temp; | ||
|  |     int c = 0; | ||
|  |     while(1) { | ||
|  |         iot_printf("\n{test new and malloc feature}\n"); | ||
|  |         class_test *test = new class_test(); | ||
|  |         test->len = 34; | ||
|  |         test->size = 45; | ||
|  |         test->print(30, 40); | ||
|  |         test->print(30, 40, 50); | ||
|  |         delete[] test; | ||
|  | 
 | ||
|  |         iot_printf("\n{test global variable feature}\n"); | ||
|  |         g_test.len = 66; | ||
|  |         g_test.size = 77; | ||
|  |         g_test.print(55, 66); | ||
|  |         g_test.print(55, 66, 77); | ||
|  | 
 | ||
|  |         iot_printf("\n{test template feature}\n"); | ||
|  |         c = temp.add(10); | ||
|  |         iot_printf("[template test] rst: %d\n", c); | ||
|  | 
 | ||
|  |         os_delay(10); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | uint32_t app_demo_entry() | ||
|  | { | ||
|  |     cpp_feature_test(); | ||
|  | 
 | ||
|  |     return 0; | ||
|  | } | ||
|  | 
 |