声明属性然后再定义?

时间:2011-12-29 04:37:27

标签: .net c++-cli clr

我正在使用C ++ / CLI,尝试在头文件中声明一个类'原型,然后在cpp文件中实现它们。

一般来说cpp这看起来很常见,但它似乎不适用于C ++ / CLI语法,我缺少什么?

#using <mscorlib.dll>

using namespace System;

public ref class AClass {

    public:

        static Boolean GetSomething ();    // Compiler is fine with this
        static property Boolean Something { Boolean get (); }    // Compiler doesn't complain about this

};

// Compiler is not cool with this
property Boolean AClass::Something {

    Boolean get () { return true; }

}

// Compiler is fine with this
Boolean AClass::GetSomething () {

    return true;

}

我已经尝试了各种语法排列,似乎没有任何效果,搜索似乎也没有帮助(也许这不再被广泛使用了?我发现它有助于我分手并处理大班级更多有效...)。

当我说编译器对属性的原型很好的时候,我的意思是如果我尝试编译注释掉的可能实现(并且原型仍然存在),编译器“成功”然后有链接时心脏病发作。

1 个答案:

答案 0 :(得分:1)

您需要像普通函数定义一样定义属性getter。

public ref class AClass 
{
public:
    static property Boolean Something { Boolean get (); }   
};


Boolean AClass::Something::get() 
{
    return true;
}