我正在使用未初始化的指针对象来访问成员函数。它有效,我知道它是如何工作的。但是当我用 B 派生该类并尝试访问该成员函数时,它会出现分段错误。有人可以解释为什么它显示出两种不同的行为吗?
以下是程序:如果我评论第 29 行,它可以工作,但没有它会失败。
#include <iostream>
using namespace std;
class A
{
int no;
public:
void printml(int i)
{
no = i;
cout << "in base: value"<<no;
}
};
class B:public A
{
public:
void printdl()
{
cout << "in derived" ;
}
};
int main()
{
A *ptr;
B *ptr1;
ptr->printml(1);
ptr1->printml(1);
return 0;
}