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;
}