Да, это правильный синтаксис для создания статического конструктора C++/CLI. Вы можете знать, что он не создает статическую функцию, поскольку это не является допустимым синтаксисом объявления функции. Функции должны иметь указанный тип возврата. Кроме того, компилятор будет жаловаться, что Foo()
не является членом класса Foo, если он не связывает его с конструктором, который вы указали в определении класса.
Вы можете протестировать довольно легко:
using namespace System;
ref class Foo {
static Foo();
Foo();
}
static Foo::Foo() { Console.WriteLine("Static Constructor"); }
Foo::Foo() { Console.WriteLine("Constructor"); }
int main(array<System::String ^> ^args)
{
Foo ^f = gcnew Foo();
Console.WriteLine("Main");
}
Это выведет:
Статический конструктор
Конструктор
Главная
Это может помочь вам: HTTP://www.drdobbs.com/184401941 – fingerprint211b
палец принт211b: видел это. В этой статье описывается, как это работает, но они не упоминают об этом конкретном использовании. – liori