vc不报错,程序正常运行。但是没有结果给出来。
用F11进行逐行调试过程中也直接跳了进不去函数
刚开始学有点蒙,有人能告诉我代码有什么问题或者如何进入逐行调试嘛
#include<iostream>
using namespace std;
class CPU
{
public:
virtual void calculate() = 0;
};
class Videocard
{
public:
virtual void display() = 0;
};
class Memary
{
public:
virtual void storage() = 0;
};
class computer
{
public:
computer(CPU* cpu, Videocard* vc, Memary* mem)
{
m_cpu = cpu;
vdcard = vc;
m_mem = mem;
}
void work()
{
m_cpu->calculate();
vdcard->display();
m_mem->storage();
}
private:
CPU* m_cpu;
Videocard* vdcard;
Memary* m_mem;
};
class intelcpu :public CPU
{
public:
virtual void calculate()
{
cout << "intel的cpu开始计算了" << endl;
}
};
class levoncpu :public CPU
{
public:
virtual void calculate()
{
cout << "levon的cpu开始工作了" << endl;
}
};
class intelvc :public Videocard
{
public:
virtual void display()
{
cout << "intel的显卡开始计算了" << endl;
}
};
class levonvc :public Videocard
{
public:
virtual void display()
{
cout << "levon的显卡开始工作了" << endl;
}
};
class intelmem :public Memary
{
public:
virtual void storage()
{
cout << "intel的内存开始计算了" << endl;
}
};
class levonmem :public Memary
{
public:
virtual void storage()
{
cout << "levon的显卡开始工作了" << endl;
}
};
void test01()
{
CPU* i_c = new intelcpu;
Videocard* i_v = new intelvc;
Memary* i_m = new intelmem;
computer* icom = new computer(i_c, i_v, i_m);
icom->work();
delete icom;
}
int main()
{
void test01();
return 0;
}
void test01改为test01();
楼上说得对,我补充一点,一般的,继承时,当派生类有指针成员时,当然你这里没有,但可能以后会加,所以基类最好加上虚析构函数,不然多态(基类指针指向子类对象)时无法调用子类析构函数,导致无法析构子类从而出现内存泄漏。
即
class CPU
{
public:
virtual void calculate() = 0;
virtual ~CPU(){}
};
class Videocard
{
public:
virtual void display() = 0;
virtual ~Videocard(){}
};
class Memary
{
public:
virtual void storage() = 0;
virtual ~Memary(){}
};
class computer
{
public:
computer(CPU* cpu, Videocard* vc, Memary* mem);
virtual ~computer(){}
}