Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

¤@­Ó¦bclass¤¤¨Ï¥Î¨ç¼Æ«ü¼Ðªº°ÝÃD

0 views
Skip to first unread message

唉....資訊憂鬱...

unread,
Oct 23, 1996, 3:00:00 AM10/23/96
to

: consider,
: class differential {
: public:
: differential();
: ~differential() {}
: double euler(int n);
^^^^^^^
(*euler)(int);


: double (*method[1])(int);
: };
: differential::differential() {
: method[0] = euler;
: }

--

生為程式人,
死為程式鬼.....

--
※ Origin: 元智工學院風之塔 BBS <bbs.yzit.edu.tw> ◆ From: [140.138.252.165]

四眼的王蟲

unread,
Oct 24, 1996, 3:00:00 AM10/24/96
to

DeathVa...@bbs.yzit.edu.tw (唉....資訊憂鬱...) wrote:

>: consider,
>: class differential {
>: public:
>: differential();
>: ~differential() {}
>: double euler(int n);
> ^^^^^^^
> (*euler)(int);

你在這兒定義 euler 為一個 function pointer 這樣雖然 compile 可以過,
但恐怕與與原問題想要做的事不同.

四眼的王蟲

--
生命是在黑暗中閃爍的光

阿花

unread,
Oct 24, 1996, 3:00:00 AM10/24/96
to

one more question,

倘若使用
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呢

謝謝

一切如新

unread,
Oct 24, 1996, 3:00:00 AM10/24/96
to

【 在 rats...@csie.nctu.edu.tw (阿花) 的大作中提到: 】

: consider,
: class differential {
: public:
: differential();
: ~differential() {}
: double euler(int n);
: double (*method[1])(int);
: };
: differential::differential() {
: method[0] = euler;
: }
: 以上的函數指標使用法, 會造成一錯誤。
: 請問該如何改正 or 函數指標的正確使用法為何
: 謝謝


--
[1;31m※ 來源:‧大溪風嶺BBS站 bbs.ccit.edu.tw‧[FROM: 140.132.111.42] [m

四眼的王蟲

unread,
Oct 24, 1996, 3:00:00 AM10/24/96
to

rats...@csie.nctu.edu.tw (阿花) wrote:

>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 的大小才行

四眼的王蟲
--
生命是在黑暗中閃爍的光

0 new messages