2

C++ では、C# などの言語では or の代わりに or を使用して、オブジェクトの値にアクセスすること->を知っています。お役に立てれば幸いです。ありがとう :)::.button->TextSystem::String^->::

4

5 に答える 5

10

->ポインター変数のメンバーにアクセスしているときです。EG: へのポインターをmyclass *m = new myclass(); m->myfunc();呼び出します。スコープ演算子です。これは、何かがどのスコープにあるかを示すためです。名前空間にある場合は、次のように記述しますmyfunc()myclass::myclassfoofoo::myclass mc;

于 2013-10-30T16:00:52.060 に答える
4
  • ->オブジェクトへのポインターがある場合、これはそのポインターを逆参照してその属性にアクセスするためのショートカットです。

    pointerToObject->memberと同じです(*pointerToObject).member

  • ::あるスコープからのものにアクセスするためのものです - 名前空間とクラス/構造体スコープでのみ機能します。

    namespace MyNamespace {
      typedef int MyInt;
    }
    MyNamespace::MyInt variable;
    
于 2013-10-30T16:05:35.233 に答える
4

あなたの質問の状態に反して、C++で使用します。.かなり。

.(メンバーとメソッドにアクセスするために非ポインタと共に使用)

std::string hello = "Hello";
if (hello.length() > 3) { ... }

->(メンバーとメソッドにアクセスするためのポインタと共に使用)

MyClass *myObject = new MyClass;
if (myObject->property)
    myObject->method();

::(スコープ解像度)

void MyClass::method() { ... } //Define method outside of class body

MyClass::static_property; //access static properties / methods

::は名前空間の解決にも使用されます (最初の例を参照してください。は名前空間にありますstd::string) 。stringstd

于 2013-10-30T16:10:11.223 に答える
3

::、 、.の使用例をいくつか示してみ->ます。私はそれが役立つことを願っています:

int g;

namespace test
{

  struct Test
  {
     int x;
     static void func();
  };

  void Test:: func() {
     int g = ::g;
  }

}

int main() {

  test::Test v;
  test::Test *p = &v;

  v.x = 1;
  v.func();
  p->x = 2;
  p->func();

  test::Test::func();

}
于 2013-10-30T16:07:47.107 に答える