Ven*_*mar 2 c++ compiler-errors visual-studio-2008
尝试编译VS 6 VC++代码时出现此编译器错误.这<someclass>不是一个抽象的类.当点击错误时,指针指向函数第一行的列表系统文件
void resize(size_type _Newsize, _Ty _Val)
{
if (_Mysize < _Newsize)
_Insert_n(end(), _Newsize - _Mysize, _Val);
else
while (_Newsize < _Mysize)
pop_back();
}
Run Code Online (Sandbox Code Playgroud)
奇怪.任何解决方案 上课,
class SomeClass: public parentObject
{
public:
SomeClass() {}
SomeClass(const someotherclass& p, double uu, double vv)
{ z= p; u = uu; v = vv; }
protected:
double u, v;
someotherclass z;
};
Run Code Online (Sandbox Code Playgroud)
如果类具有任何纯虚拟成员,则无法创建该类的实例.是否在该类或基类中声明了这些纯虚拟成员.除非存在所有成员,否则无法创建类.具有纯虚拟成员(无论是在类中还是在基类中声明)的类称为抽象类.
因此,如果从具有纯虚拟成员的基类继承,则必须在派生类中实现这些,如果要创建该类的实例(例如将它们放入a中std::vector).
你可以将指针放在一个抽象类中std::vector.但只有指针,而不是对象本身.所以你需要分配你的对象new,但由于这个类是抽象的,你根本无法创建它们.因此,您需要派生一个实现纯虚方法的新类.然后你就可以创建那个课程并把它放在你的课堂上std::vector<someclass*>.
| 归档时间: |
|
| 查看次数: |
8602 次 |
| 最近记录: |