作者james732 (好人超)
站內C_and_CPP
標題Re: [問題] 全域變數宣告在哪?
時間Sun May 10 00:07:40 2009
1F:→ tstanly:阿 兩個form間的關係 就是form1點某button會出現form2 05/09 23:46
2F:→ tstanly:而設定form2時會用到form1的變數.. 05/09 23:46
我之前也寫過這樣的程式。
我的做法是:
1. 對於 Form2 需要用到的變數,Form1 準備相應的 getter
class Form1
{
public:
string ^ getS()
{
return this->s;
}
private:
string ^s;
}
2. 讓 Form2 的建構子能夠傳進 Form1 並存起來
class Form2
{
public:
Form2(Form1 ^f)
{
form1 = f;
}
foo()
{
string ^s = form1->getS();
// 這樣就可以對這個變數 s 操作了
}
private:
Form1 ^form1;
}
3. 在 Form1 建立 Form2 時,把自己傳進去
Form1裡的某個函式()
{
Form2 ^form2 = gcnew Form2(this);
}
程式碼並不完全正確,參考意思就好
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.63.38
3F:推 tstanly:推好文 不過如果兩個變數以上呢 05/10 00:15
4F:→ tstanly:要寫多個getS? 05/10 00:15
5F:→ james732:那也是個方法 就看你要怎麼變化了 05/10 00:21
6F:推 tstanly:對了 那如果是宣告int i 也可用降傳嗎?因為string是指標 05/10 00:23
7F:→ james732:或許可以直接用 int *getI() {...} 之類的 05/10 00:31
8F:→ james732:老實說我不知道這樣的寫法好不好...oz 05/10 00:31
9F:推 TroyLee:語法看不懂...@@ 05/10 00:35
10F:→ sosokill:多參數應該可以使用struct 05/10 01:13
11F:→ james732:同意樓上,如果要共享的東西太多,就用struct或class包裝 05/10 01:22
12F:→ dove1706:全域變數宣告在c/cpp檔,在h檔全域範圍用extern 05/10 01:49
14F:推 tstanly:回 dov1706,但我是兩個不同.h檔 降會失敗... 05/10 11:56
15F:→ dove1706:原C++可 沒碰CLR或許差別在這 :) 05/10 15:30