读书人

一个类作为另一个类的静态成员变量的有

发布时间: 2012-03-09 21:42:52 作者: rapoo

一个类作为另一个类的静态成员变量的问题****
比如:
class A
{
public:
A(int aa=0)
{
a=aa;
}
void f()
{
cout < < "hello " < <endl;
}
private:
int a;
};

class B
{
public:
static void function();
static A a;
};

void B::function()
{
a.f();
}
int main()
{
B::function();
return 0;
}

这样编译没问题,但是连接就出错了,是不是静态变量a没有初始化的原因呢?那这个a又怎么初始化呢?
请大虾指点指点

[解决办法]
class B
{
public:
static void function();
static A a; //这里不分配内存
};

A B::a; // 类内声明 类外定义

[解决办法]
同意david2083

读书人网 >C++

热点推荐