开发者社区> 问答> 正文

c++小问题,为什么出错? 400 请求报错 

#include "stdafx.h"

class A

{

public:

A(){};

~A(){};

};

class B:public A

{

public:

B(){};

~B(){};

void fun()

{

};

};

int main(int argc, char* argv[])

{

A *pA;

(B *)pA->fun();//为什么这句出错,下面的两句正确。

B *pB=(B *)pA;

pB->fun();

return 0;

}

展开
收起
kun坤 2020-05-29 22:35:53 497 0
1 条回答
写回答
取消 提交回答
  • (B *)pA->fun();
    修改为 :
    ((B *)pA)->fun();

    另外此时pA是空野指针,你这样写程序肯定会挂掉的,指针初始化时要设置为NULL
    ######((B *)pA)->fun();######.和->的优先级可是很高的######哦,原来是这样谢谢。

    2020-05-29 22:36:00
    赞同 展开评论 打赏
问答分类:
C++
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载