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;
 | |
| }
 | |
| 
 |