首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于类的有关问题,请问下~多谢

2012-02-24 
关于类的问题,请教下~~~谢谢假设有个classStudent{public:Student(){cout ConstructingStudent.\n

关于类的问题,请教下~~~谢谢
假设有个
class   Student
{
public:
Student()
{
cout < < "Constructing   Student.\n ";
semesHours=100;
gpa=3.5;
}
~Student()
{
cout < < "Destructing   Sutndet.\n ";
}
protected:
int   semesHours;
float   gpa;

};
请问
Student   s1()和Student*   s2=new   Student()
有什么不同?
为什么使用结素后s1不用调用delete释放内存,而s2要调用delete释放内存?
希望能解答下,谢谢。


[解决办法]
new的内存是从堆上分配,new和delete总是要成对出现,因为这是用户自己维护的。Student s1()则是由系统维护的内存(栈)。另:Student s();这样的用法我觉得应该也是可以的,
[解决办法]
Student s1() //这句话有错误,不能有括号,否则构造失败,并且此句不会报错!
//分配可能是栈中,也可能是在静态区,看你定义的位置

声明了一个函数 s1,返回类型为 Student,参数列表为空。

热点排行