C++ 如何使用构造函数初始化内存地址(指针变量)?
注:1)人是学生的基本班级 2) Person包含name作为唯一的数据变量 3) 学生包容社会。社团充当指向包含学生俱乐部名称的文本字符串的指针 我很难理解第四行:C++ 如何使用构造函数初始化内存地址(指针变量)?,c++,C++,注:1)人是学生的基本班级 2) Person包含name作为唯一的数据变量 3) 学生包容社会。社团充当指向包含学生俱乐部名称的文本字符串的指针 我很难理解第四行: int main (){ Person* p1; p1=new Student("John", "Drama Society"); //This line delete p1; } p1不是指向堆中内存地址的Person指针吗?据我所知,指针变量只是内存中的一个32位或64位(取决于系统)位置。 它如何像Person类型的对
int main (){
Person* p1;
p1=new Student("John", "Drama Society"); //This line
delete p1;
}
p1不是指向堆中内存地址的Person指针吗?据我所知,指针变量只是内存中的一个32位或64位(取决于系统)位置。
它如何像Person类型的对象一样初始化
我知道我的概念是错误的,请帮我找出它们:(发生的是对
new
的调用在堆上分配了一个Student
对象,然后返回一个指向该对象的指针。然后你将该指针分配给p1
。因此p1
现在指向堆上的Student
对象
<> >构造函数调用<代码>新< /C> > C++代码> C++ >新< /COD>。该构造函数将用于初始化堆上的对象。 < p>您询问多态性。 您必须区分静态类型和动态类型。指针的静态类型是在声明时指定的。在这种情况下,p1的静态类型是Person。动态类型可以是静态类型的任何后代,并且可以在运行时定义,在示例中是Student
你可以在这里找到一个很好的解释:新的结果是一个指针。指向人的指针可以用指向学生的指针初始化。你的问题是什么?谢谢!我现在明白了