读书人

dynamic+class+pointer question,该怎

发布时间: 2012-03-19 22:03:04 作者: rapoo

dynamic+class+pointer question
Can anyone tell me why there is a segment error? thx~


//core.h

class core
{
public:
core();
int rhaha();
private:
int haha;
};

//core.cpp
#include "core.h"
core::core()
{
haha=3;
}
int core::rhaha()
{
return haha;
}

//apple.h
#include "core.h"
class apple
{
public:
apple();
~apple();
int rnum_of_core();
core* getapplecore();
private:
core *applecore;
int num_of_core;
};

//apple.cpp
#include "apple.h"
apple::apple()
{
core *applecore = new core;
num_of_core = 1;
}
apple::~apple()
{
delete applecore;
}
int apple::rnum_of_core()
{
return num_of_core;
}
core* apple::getapplecore()
{
return applecore;
}

//main.cpp

#include "apple.h"
#include <iostream>

using namespace std;

int main()
{
cout<<"haha0";
apple *aa = new apple;
cout<<"haha1";
cout<<aa->rnum_of_core();
cout<<"haha2";
cout<<aa->getapplecore()->rhaha();
}


[解决办法]
这个函数出了问题,你new的返回值赋值给的是局部变量applecore
不是类成员applecore


apple::apple()
{
//core *applecore = new core;
applecore = new core;
num_of_core = 1;
}

读书人网 >C++

热点推荐