| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 364 人关注过本帖
标题:C++在类中对变量声明的时候就已经创建了该变量了么?
只看楼主 加入收藏
dltanglin
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-7-6
结帖率:0
收藏
已结贴  问题点数:10 回复次数:3 
C++在类中对变量声明的时候就已经创建了该变量了么?
C++在类中对变量声明的时候就已经创建了该变量了么?或者说已经为该变量分配内存了,只是内存中的数是未知的。
代码如下:
//student.h
 class student
{public:
     int score;
     int   num;
 public:
     student();
     student(int s,int n);
     void f1();
     void f2();
};

//student.cpp  
student::student(){}
student::student(int s,int m)
{   
    score=s;
    num=m;
}

void student::f1()
{   
    score=score+1;
    num=num+1;
    cout<<"score="<<score<<",  "<<"num="<<num<<endl;
}

void student::f2()
{
    score=score+2;
    num=num+2;
    cout<<"score="<<score<<",  "<<"num="<<num<<endl;
}

//main
#include "student.h"
void main()
{
    student op;
    op.f1();
    op.f2();
}

输出为:-58993459,-58993459
        -58993457,-58993457
搜索更多相关主题的帖子: 声明 内存 public class 
2011-04-19 14:54
Noll_Nie
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:139
注 册:2011-4-19
收藏
得分:5 
声明变量时并没有分配内存,只有在定义变量的时候才分配
这个类的构造函数这儿并没有发挥作用啊
2011-04-19 16:22
Noll_Nie
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:139
注 册:2011-4-19
收藏
得分:0 
student::student()
{
     score=0;
     num=0;
}

int main()
{
    student op,op1(2,3);
    op.f1();
    op.f2();
op1.f1();
op1.f2();
    return 0;
}
这样试一下,我也是新手,呵呵

2011-04-19 16:27
flylee
Rank: 5Rank: 5
等 级:职业侠客
帖 子:309
专家分:374
注 册:2004-8-10
收藏
得分:5 
C++中的存储空间分为5类:
代码区、全局和静态存储区、堆、栈、常量存储区
全局和静态存储区的对象是会被自动初始化的,堆和栈上的数据是未初始化的
C++类中成员的空间是在对象实例化的时候分配的,根据类的生命域(全局?局部?静态?)、存对象的存取区域决定采用哪种初始化方式
2011-04-19 17:00
快速回复:C++在类中对变量声明的时候就已经创建了该变量了么?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020801 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved