作者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