求问一个关于C++虚函数的有关问题
求问一个关于C++虚函数的问题
因为C++没有接口嘛,本来寻思写两个类,代替接口使用,不过有个问题,求教一下
class A
{
public:
A(void){};
virtual ~A(void);
virtual void SetA();
}
classB
{
public:
B(void){};
virtual ~B(void);
virtual A GetA(); //当两个类放到同一个文件的时候,这里报错
}
当我把两个类放到同一个b.h的头文件中定义的时候,VS2012就会报错,C2259,不能实例化抽象类。
但是当我把两个类分别放到A.h和B.h中的时候,就不报这个错了。。。这是为什么?对程序有影响么?
因为之前一直都是搞C#开发,对C++不是很熟悉。本来只是想想C#定义一下接口,现在出现这个问题,着实不太理解。求给位大侠帮帮忙!
------解决方案--------------------
virtual A* GetA();
因为C++没有接口嘛,本来寻思写两个类,代替接口使用,不过有个问题,求教一下
class A
{
public:
A(void){};
virtual ~A(void);
virtual void SetA();
}
classB
{
public:
B(void){};
virtual ~B(void);
virtual A GetA(); //当两个类放到同一个文件的时候,这里报错
}
当我把两个类放到同一个b.h的头文件中定义的时候,VS2012就会报错,C2259,不能实例化抽象类。
但是当我把两个类分别放到A.h和B.h中的时候,就不报这个错了。。。这是为什么?对程序有影响么?
因为之前一直都是搞C#开发,对C++不是很熟悉。本来只是想想C#定义一下接口,现在出现这个问题,着实不太理解。求给位大侠帮帮忙!
------解决方案--------------------
virtual A* GetA();