Vâng, đó là cú pháp chính xác để tạo hàm tạo tĩnh C++/CLI. Bạn có thể biết nó không tạo ra một hàm tĩnh vì đó không phải là cú pháp khai báo hàm hợp lệ. Các hàm phải có kiểu trả về được chỉ định. Ngoài ra, trình biên dịch sẽ khiếu nại rằng Foo()
không phải là thành viên của lớp Foo nếu nó không liên kết nó với hàm tạo mà bạn đã khai báo trong định nghĩa lớp.
Bạn có thể kiểm tra khá dễ dàng:
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");
}
sẽ này đầu ra:
Static Constructor
Constructor
chính
Điều này có thể giúp bạn: http://www.drdobbs.com/184401941 – fingerprint211b
ngón tay print211b: thấy điều đó. Bài viết này mô tả cách hoạt động, nhưng chúng không đề cập đến cách sử dụng cụ thể này. – liori