質問編集履歴

3

ああ

2017/04/18 02:28

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -105,3 +105,11 @@
105
105
 
106
106
 
107
107
  ```
108
+
109
+
110
+
111
+ ###実現したいこと
112
+
113
+ 書いていて自分でもわからなくなってきましたが、
114
+
115
+ やりたいことは**ソースコードに手を加えることなく実行する関数を変更する**ということです。

2

2017/04/18 02:28

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -10,9 +10,11 @@
10
10
 
11
11
  ```
12
12
 
13
- Func1="function1"
13
+ Func_Count=1 //実行するfuncの数
14
14
 
15
+ Func1="function1" //関数名
16
+
15
- Argment1="aaa;bbb"
17
+ Argment1="aaa;bbb" //func1の引数
16
18
 
17
19
  ```
18
20
 
@@ -21,3 +23,85 @@
21
23
 
22
24
 
23
25
  不足情報等ありましたら追記いたします。
26
+
27
+
28
+
29
+
30
+
31
+ ###現在の実装
32
+
33
+ ```main.h
34
+
35
+ ...
36
+
37
+ typedef int(*function)(std::string* arg);
38
+
39
+ std:map<std:string, function> map;
40
+
41
+
42
+
43
+ static void func1(std::string* arg)
44
+
45
+ static void func2(std::string* arg)
46
+
47
+ static void func3(std::string* arg)
48
+
49
+ ...
50
+
51
+ ```
52
+
53
+ ```main.cpp
54
+
55
+ void main(){
56
+
57
+ int count;
58
+
59
+ function funcptr[10];
60
+
61
+ std:string func_name,arg;
62
+
63
+
64
+
65
+ map_init();
66
+
67
+
68
+
69
+ //テキストの読み込み処理を行う
70
+
71
+
72
+
73
+ for(int i=0; i<count; i++){
74
+
75
+ //("Func%d",i)の読み込み
76
+
77
+ //("Argument%d",i)の読み込み
78
+
79
+ (map[func_name])(&arg)
80
+
81
+ }
82
+
83
+ }
84
+
85
+
86
+
87
+ viod map_init(){
88
+
89
+ map["func1"]=&func1;
90
+
91
+ map["func2"]=&func2;
92
+
93
+ map["func3"]=&func3;
94
+
95
+ }
96
+
97
+
98
+
99
+ void func1(std::string* arg){
100
+
101
+ //処理
102
+
103
+ }
104
+
105
+
106
+
107
+ ```

1

aaaaa

2017/04/18 02:24

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  Func1="function1"
14
14
 
15
- argment="aaa;bbb"
15
+ Argment1="aaa;bbb"
16
16
 
17
17
  ```
18
18