麻烦老师出来,指导下,关于我在堆栈里生成对象所出现的你问题。
//C++ CODE
#include <iostream>
using namespace std;
class Vehicle {
public:
Vehicle () {
cout << "Vehicle construct" << endl;
}
virtual ~Vehicle () {
cout << "Vehicle deConstruct" << endl;
}
void Run ();
void Stop ();
protected:
int m_maxSpeed;
int m_weight;
};
class Bicycle : public Vehicle {
public:
Bicycle () {
cout << "Bicycle construct" << endl;
}
virtual ~Bicycle () {
cout << "Bicycle deConstruct" << endl;
}
void setMaxSpeed (int n);
private:
intm_height;
};
void Bicycle::setMaxSpeed (int n) {
m_maxSpeed = n;
}
int main (int argc, char** argv) {
//#define HEAP
//--Way 1: in the stack
#ifndefHEAP
Bicycle bicyc();
//bicyc.setMaxSpeed(100);//这里编译不过
#endif
//--Way 2: in the heap
#ifdefHEAP
Bicycle* bicyc = new Bicycle();
bicyc->setMaxSpeed(100);
delete bicyc;
bicyc = NULL;
#endif
return true;
}