0

だから私はこのようなものを持っています:

//somewhere in the class header 
static void bar(); 
Someobj baz;


//meanwhile in the implementation
void foo::bar()
{
   baz.f()//this doesn't work b/c baz isn't declared as static
} 

静的関数 foo で使用するすべてのものを静的として宣言する必要がありますか、それともより良い方法がありますか?

4

2 に答える 2

0

そうです。10 個のオブジェクトがあり、それぞれに独自のがあるbaz場合、どのオブジェクトについて話しているかをどのようbarに知る必要があるbazでしょうか?

できません。bazそのため、静的なものも1 つしか持てません。

于 2013-06-11T01:32:13.827 に答える
0

静的関数はグローバル関数のようなもので、関連付けられたインスタンスがないため、インスタンス メンバーを参照できません。このクラスに関連付けられた単一の baz オブジェクトが必要な場合は、それも静的にします。それ以外の場合は、ロジックを変更する必要があります。

于 2013-06-11T01:32:32.140 に答える