c++ 类 构造时 自身作为静态变量的初始化问题

例如:A.h中这样定义一个类classA{public:A();~A();voidprint123();private:staticA*m_handle;};在类的实现文... 例如:A.h中这样定义一个类
class A
{
public:
A();
~A();
void print123();
private:
static A *m_handle;
};
在类的实现文件A.cpp中
#include "A.h"
A::A()
{
m_handle = this;//在这里用this指针初始化编译报错
}
A::~A()
{
}

void A::print1()
{
printf("111111\n");
m_handle->print2();
}
void A::print2()
{
printf("22222\n");
}
请问:m_handle应当在哪里初始化?
展开
 我来答
CHENGWENGJI
2017-12-29 · TA获得超过412个赞
知道小有建树答主
回答量:667
采纳率:66%
帮助的人:296万
展开全部

应该在A.cpp中写:

//.h
class A {
public:
    A() {
        m_handle = this;
    }
private:
    static A *m_handle;
};

//.cpp
A *A::m_handle = NULL;//当然这里就不能访问到this指针了。

int main() {
    A a;

    return 0;
}
无边飞雪
2020-11-26
知道答主
回答量:2
采纳率:0%
帮助的人:1112
展开全部
静态成员函数不能使用this指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式