是否可以在类之外声明变量?在C++类声明之外定义的属性
例如,
// a.h
ref class A
{
public:
property String^ P;
private:
String ^p;
};
// a.cpp
/* Define property here */
是否可以在类之外声明变量?在C++类声明之外定义的属性
例如,
// a.h
ref class A
{
public:
property String^ P;
private:
String ^p;
};
// a.cpp
/* Define property here */
你至少可以做到这一点以外initilalized,我只是测试:
// a.h
ref class A
{
public:
property String^ P { String^ get(); void set(String^); }
private:
String ^p;
};
您定义正是如此:
// a.cpp
String^ A::P::get() { return p; }
void A::P::set(String^ value) { p = value; }
它编译。
总之,你不能只是声明了一个属性,而不述说它的存取是,这样编译器可以知道属性是否可以读取,写入,重写等
谢谢,这就是我正在寻找。我应该尝试过。谢谢。 – jax 2014-09-10 10:39:36
所有变量应该理想的类中定义。静态成员需要在类声明外进行初始化,非静态成员需要通过构造函数初始化。全球数据,但是,可以声明和类(与类没有关系)
// a.h
extern int ga;
class A
{
int m_a;
static int s_a;
public:
A(int aa) : m_a(aa){
// constructor
}
};
// a.cpp
int ga = 4; // global data initialization
int A::s_a = 0; // class static data initialization
好的,所以属性必须在类定义内部定义?它使类定义时间更长。 – jax 2014-09-10 09:15:57
是的,这是正确的:-) – 2014-09-10 12:56:20
不,你不这与一个全局变量,而不是一个属性。当定义在课堂之外时,它不是任何东西的属性。 – 2014-09-10 08:51:12