: double (*method[1])(int);
: };
: differential::differential() {
: method[0] = euler;
: }
--
生為程式人,
死為程式鬼.....
--
※ Origin: 元智工學院風之塔 BBS <bbs.yzit.edu.tw> ◆ From: [140.138.252.165]
>: consider,
>: class differential {
>: public:
>: differential();
>: ~differential() {}
>: double euler(int n);
> ^^^^^^^
> (*euler)(int);
你在這兒定義 euler 為一個 function pointer 這樣雖然 compile 可以過,
但恐怕與與原問題想要做的事不同.
四眼的王蟲
--
生命是在黑暗中閃爍的光
倘若使用
double (*euler)(int n);
而member function的寫法該為何?
我的寫法是
double differential::(*euler)(int n) {
}
會產生 '(' illegal token on right side of '::'的訊息
change it to ,
double differential::euler(int n) {
}
會產生 'euler' not a function
also
在指定function給method時
寫作method[0] = euler; <---沒問題
倘若一次不止給一個function
寫作method[] = {euler, backward_euler};
會出現syntax error : ']'
請問要怎麼寫才會不出現erorr呢
謝謝
--
[1;31m※ 來源:‧大溪風嶺BBS站 bbs.ccit.edu.tw‧[FROM: 140.132.111.42] [m
>one more question,
>
> 倘若使用
> double (*euler)(int n);
>
> 而member function的寫法該為何?
這種寫法是定義 euler 為一個 function pointer 而不是
定義 euler 為一個 member function, 不管你怎麼寫
euler 的函數本體都沒用的, compile 不可能會過, 正確的
寫法我不是早就 post 出去了, 你沒看到嗎? 再寫一次
好了, 就是如下定義 method :
double (differential::*method[1])(int);
>
> 在指定function給method時
> 寫作method[0] = euler; <---沒問題
> 倘若一次不止給一個function
> 寫作method[] = {euler, backward_euler};
> 會出現syntax error : ']'
> 請問要怎麼寫才會不出現erorr呢
很簡單就老實地一個個指定
method[0] = euler;
method[1] = backward_euler;
不過你只宣告 method 為一個大小只有 1 的陣列
必須加大 method 的大小才行
四眼的王蟲
--
生命是在黑暗中閃爍的光