注册 登录
编程论坛 C++教室

问一个关于指针在类中初始化的问题!

夕野先生 发布于 2010-05-20 11:08, 694 次点击
定义了一个类:
class SimpleCat
{
public:
    SimpleCat();
    ~SimpleCat();
    void SetAge(int age){*itsAge=age;}
    int GetAge(){return *itsAge;}

    void SetWeight(int weight){*itsWeight=weight;}
    int GetWeight(){return *itsWeight;}

private:
    int *itsAge=0;
    int *itsWeight;
};

SimpleCat::SimpleCat()
{
    itsAge=new int(2);
    itsWeight=new int(20);
}

SimpleCat::~SimpleCat()
{
    delete itsAge;
    delete itsWeight;
}

红色区域的私有数据用指针表示,但是为什么我给指针赋初值,编译器就报错啊?书上不说最好每次声明指针的时候都赋初值吗?
错误:error C2252: 'itsAge' : pure specifier can only be specified for functions
5 回复
#2
lintaoyn2010-05-20 11:27
class SimpleCat
{
public:
    SimpleCat();
    ~SimpleCat();
    void SetAge(int age){*itsAge=age;}
    int GetAge(){return *itsAge;}

    void SetWeight(int weight){*itsWeight=weight;}
    int GetWeight(){return *itsWeight;}

private:
    int *itsAge=0;//类里的数据成员的初始化或赋值得在构造函数里完成,int *itsAge;
    int *itsWeight;
};

SimpleCat::SimpleCat()//改写成SimpleCat::SimpleCat():itsAge(0)这个就是对指针进行初始化
{
//或者你在这儿写itsAge = 0;
    itsAge=new int(2);
    itsWeight=new int(20);
}

SimpleCat::~SimpleCat()
{
    delete itsAge;
    delete itsWeight;
}
#3
夕野先生2010-05-20 11:30
哦对对,谢谢了啊!
#4
lucky5635912010-05-20 12:33
指针难学吗
#5
夕野先生2010-06-01 16:01
回复 4楼 lucky563591
还行,反正有点绕,好好看还是挺好学的。
#6
lintaoyn2010-06-01 20:56
回复 5楼 夕野先生
互相学习啊,我Q244744144
1