namespace SS
{
class SSElement
{
public:
SSElement()
{
i=0;
m_key=NULL;
m_findkey=NULL;
}
virtual int FormatText(CStdString* str)
{
以上代码我想调用formattext,可是不行?也不能被实例化。伤不起啊!
16 个解决方案
#1
你在调用的时候指明名字空间没有?
#2
指明了
#3
引用这个头文件,
SS::SSElement obj;
obj.FormatText() 调用函数。。。
SS::SSElement obj;
obj.FormatText() 调用函数。。。
#4
#include "头文件"
SS::SSElement a;
这样不行?
那是否SSElement 中有纯虚函数?
SS::SSElement a;
这样不行?
那是否SSElement 中有纯虚函数?
#5
error C2259: “SS::SSElement”: 不能实例化抽象类
#6
你还是把你的错误信息贴出来吧
#7
那你的SSElement里面有纯虚函数呀
1是你把代码全贴出来
1是你自己去查下纯虚函数的知识
1是你把代码全贴出来
1是你自己去查下纯虚函数的知识
#8
晕死,那就是SSElement中有纯虚函数,只能使用指针,不能实例化对象。。。
#9
请问怎么使用指针?
#10
#include <iostream>
namespace ss
{
class first
{
public:
virtual void display()
{
std::cout<<"first"<<std::endl;
}
};
class second:public first
{
public:
virtual void display()
{
std::cout<<"second"<<std::endl;
}
};
}
int main()
{
ss::first A;
A.display();
ss::second B;
B.display();
}
这样使用没有错误的
#11
SS::SSElement* pBase;
但是pBase只能指向SSElement的实现了纯虚接口的派生类中 的对象,
但是pBase只能指向SSElement的实现了纯虚接口的派生类中 的对象,
#12
纯虚函数啊?晕死,自己找找有没有吧!
#13
我在类里使用了一句:
virtual operator CStdString()=0;
#14
我不修改原来的函数下,怎么调用?都用指针吗?
#15
在许多情况下,在基类中不能对虚函数给出有意义有实现,而把它说明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。
#16
你为什么要调用基类的纯虚函数呢?
纯虚函数本来就是作为接口,提供给派生类使用的,派生类里要实现这个函数,既然已经将他设为纯虚函数了,就说明基类不需要直接调用这个函数,否则就是设计有问题。
要是通过指向派生类的指针去调用,那也调用的是派生类实现的,也不能调用基类的啊。
以上基类均指你的含有纯虚函数的类。
纯虚函数本来就是作为接口,提供给派生类使用的,派生类里要实现这个函数,既然已经将他设为纯虚函数了,就说明基类不需要直接调用这个函数,否则就是设计有问题。
要是通过指向派生类的指针去调用,那也调用的是派生类实现的,也不能调用基类的啊。
以上基类均指你的含有纯虚函数的类。
#1
你在调用的时候指明名字空间没有?
#2
指明了
#3
引用这个头文件,
SS::SSElement obj;
obj.FormatText() 调用函数。。。
SS::SSElement obj;
obj.FormatText() 调用函数。。。
#4
#include "头文件"
SS::SSElement a;
这样不行?
那是否SSElement 中有纯虚函数?
SS::SSElement a;
这样不行?
那是否SSElement 中有纯虚函数?
#5
error C2259: “SS::SSElement”: 不能实例化抽象类
#6
你还是把你的错误信息贴出来吧
#7
那你的SSElement里面有纯虚函数呀
1是你把代码全贴出来
1是你自己去查下纯虚函数的知识
1是你把代码全贴出来
1是你自己去查下纯虚函数的知识
#8
晕死,那就是SSElement中有纯虚函数,只能使用指针,不能实例化对象。。。
#9
请问怎么使用指针?
#10
#include <iostream>
namespace ss
{
class first
{
public:
virtual void display()
{
std::cout<<"first"<<std::endl;
}
};
class second:public first
{
public:
virtual void display()
{
std::cout<<"second"<<std::endl;
}
};
}
int main()
{
ss::first A;
A.display();
ss::second B;
B.display();
}
这样使用没有错误的
#11
SS::SSElement* pBase;
但是pBase只能指向SSElement的实现了纯虚接口的派生类中 的对象,
但是pBase只能指向SSElement的实现了纯虚接口的派生类中 的对象,
#12
纯虚函数啊?晕死,自己找找有没有吧!
#13
我在类里使用了一句:
virtual operator CStdString()=0;
#14
我不修改原来的函数下,怎么调用?都用指针吗?
#15
在许多情况下,在基类中不能对虚函数给出有意义有实现,而把它说明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。
#16
你为什么要调用基类的纯虚函数呢?
纯虚函数本来就是作为接口,提供给派生类使用的,派生类里要实现这个函数,既然已经将他设为纯虚函数了,就说明基类不需要直接调用这个函数,否则就是设计有问题。
要是通过指向派生类的指针去调用,那也调用的是派生类实现的,也不能调用基类的啊。
以上基类均指你的含有纯虚函数的类。
纯虚函数本来就是作为接口,提供给派生类使用的,派生类里要实现这个函数,既然已经将他设为纯虚函数了,就说明基类不需要直接调用这个函数,否则就是设计有问题。
要是通过指向派生类的指针去调用,那也调用的是派生类实现的,也不能调用基类的啊。
以上基类均指你的含有纯虚函数的类。