private : const static A*p 有问题。。。。;这个指针如何初始化
c++中的禁用构造,够狠的,连自己的成员都构造不成了!
class A{
private:
A(){}
static A* pa;
};
如何初始化pa啊??期待解决啊.
如果想构造pa吧。。我又想禁止对构造的访问.
...........................下面是自己的想法:
据说const对象可以直接在类内初始化:
但是,问题是构造函数又不能在类内访问!!
莫非,c++禁止让自己构造自己?
难道我要建一个A类的姐妹类:
#include "stdafx.h"
#include <stdio.h>
#include <iostream.h>
class A{
private:
friend class ASister;
A(){}
public:
void hello() const {
cout<<"Hello!"<<endl;
}
};
class ASister{
private:
const static A* pa=new A();
public:
const static A* GetA(){
return pa;
}
};
const A* ASister::pa;
//const static A pa;
int main(int argc, char* argv[])
{
const A *a=ASister::GetA();
a->hello();
}
//上面的代码中,这句话有错误!!!!!!!!!为什么啊。。。。。
const static A* pa=new A();