C++求大神指教
运行出错:‘
[解决办法]
VC6.0没看见有啥子问题,大概人品太好了
[解决办法]
在virtual里面,如果你要把它定义为纯虚函数的话,在后面 =0 否则在后面加{}
[解决办法]
ISpeak是一个未完成的类啊,而且尽量把构造函数析构函数的写上,反正我喜欢写上~
[解决办法]
这是一种方法,作为接口使用,第二种,你实现一下它
[解决办法]
class ISpeak
{
public:
virtual void speak(){}
};
[解决办法]
ISpeak 里面
要么
virtual void speak(){};
要么
virtual void speak() = 0;
[解决办法]
个人觉得也是这样。楼主可以试一下。
[解决办法]
virtual void speak(){}
[解决办法]
就算=0还是得定义,而且还不能放class-body里面。{}吧。
[解决办法]
好吧眼残。。。如果是virtual ~ISpeak() = 0;还要另外定义;这里=0可以不用。
[解决办法]
class ISpeak
{
public:
virtual void speak(){}
};
看楼主既然有用ISpeak的实例,应该需要这样吧
[解决办法]
定义完整一下吧
[解决办法]
4l 正解。。
[解决办法]
虚函数未定义完全
[解决办法]
class ISpeak
{
public:
virtual void speak()
{
std::cout<<"dog bark.."<<std::endl;
}
};
基类虚函数未定义完全
[解决办法]
完整代码,vs2010亲测成功
//#include <iostream>
//using namespace std;
//
//class Base{
//public:
//void run() { display(); }
//virtual void display() { cout<< "Base" <<endl; }
//};
//
//class Drive: public Base{
//public:
//void display() { cout<< "Drive" <<endl; }
//};
//
//int main(void)
//{
//Base *p = new Drive;
//p->run();
//delete p;
//system("PAUSE");
//return 0;
//}
#include <iostream>
using std::endl;
using std::cout;
class ISpeak
{
public:
virtual void speak() = 0;// 纯虚函数不用实现
virtual ~ISpeak() {};// 析构函数为虚函数
};
class Bark
:public ISpeak
{
public:
void speak() { cout<< " dog bark.." << endl; }
};
class Dog
:public Bark
{
public:
Dog():age(0) {}
private:
int age;
};
int main()
{
Dog d;
ISpeak* s = &d;
s->speak();
cout<< "Hello world!" <<endl;
return 0;
}
[解决办法]
这个+1