新手求教:C++,在堆中创建对象的问题!!
才学C++,请看:#include<iostream>usingnamespacestd;classstudent{public:student(){cout<<"构造函...
才学C++,请看:
#include<iostream>
using namespace std;
class student
{
public:
student(){cout<<"构造函数执行中。。。"<<endl;}
}
int main()
{
student *p=new student;
/*请问,这里说是在堆中创建了一个student类的对象,并将该对象的内存地址赋给指针变量p。新手不懂,这里创建的对象是哪个?是student吗?student不是构造函数吗?我只知道创建对象可以这样 student mike;这里就知道mike是student类中的一个对象了。求理解的朋友解答*/
return 0;
} 展开
#include<iostream>
using namespace std;
class student
{
public:
student(){cout<<"构造函数执行中。。。"<<endl;}
}
int main()
{
student *p=new student;
/*请问,这里说是在堆中创建了一个student类的对象,并将该对象的内存地址赋给指针变量p。新手不懂,这里创建的对象是哪个?是student吗?student不是构造函数吗?我只知道创建对象可以这样 student mike;这里就知道mike是student类中的一个对象了。求理解的朋友解答*/
return 0;
} 展开
3个回答
展开全部
类是印钞机的模板,对象就是类印出来的money 。。。 这样比喻能理解了吧
student *p=new student; 就是创建一个无名对象 返回其地址
student *p=new student; 就是创建一个无名对象 返回其地址
更多追问追答
追问
懂你的意思,但是你说的这个“无名对象”,我怎么对他进行操作呢?利用指向他的指针么?如果这样的话,那么每个在堆中的匿名对象都必须有一个相应的指针,用来操作他们么?
追答
当然用指针啦 ...........
用对象数组呀 .... .....在复杂 链表.........
展开全部
student mike;和 student *mike = new student; 都是创建一个对象
只是前者在栈上,后者在堆上
前者当函数结束的时候,自动销毁;后者需要程序员用delete手动销毁。
或者什么时候用哪一种,就需要自己多写才知道
只是前者在栈上,后者在堆上
前者当函数结束的时候,自动销毁;后者需要程序员用delete手动销毁。
或者什么时候用哪一种,就需要自己多写才知道
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
student *p=new student;
和
int *p=new int(3);有区别吗;
和
int *p=new int(3);有区别吗;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询