小编sox*_*red的帖子

模板中的多态类

比方说,我们有一个类层次结构,我们有一个通用Animal类,它有几类,从它直接继承(如Dog,Cat,Horse,等..).

在这个继承层次结构上使用模板时,使用SomeTemplateClass<Animal>然后将Dogs and Cats and Horses推入这个模板化对象是否合法?

例如,假设我们有一个模板化的Stack类,我们想要托管各种动物.我能说清楚吗?Stack<Animal> s; Dog d; s.push(d); Cat c; s.push(c);

c++ inheritance templates

5
推荐指数
1
解决办法
271
查看次数

如何为结构分配指针数组

我使用的是opencv的CvPoint2D32f结构,定义为

typedef struct CvPoint2D32f
    {
        float x; /* x-coordinate, usually zero-based */
        float y; /* y-coordinate, usually zero-based */
    }
    CvPoint2D32f;
Run Code Online (Sandbox Code Playgroud)

我试图按如下方式分配这些对象的指针数组,但它无法正常工作.这是如何实现的?

CvPoint2D32f *cvpoints[8];
for (i = 0; i < 16; i++)
    {
        if (i % 2 == 0)
        {
            (*cvpoints)[i/2].x = float(points[i]); // points is an array of ints.  
        }
        else
        {
            (*cvpoints)[i/2].y = float(points[i]);
        }
    }
Run Code Online (Sandbox Code Playgroud)

c

2
推荐指数
1
解决办法
2482
查看次数

虚拟模板?

我试图声明一个抽象类,但只是模板化虚函数的行为让编译器抱怨。这通常是如何实现的?例如,在我的头文件中,我有:

virtual SpecialList<Point> *getPoints() const;
Run Code Online (Sandbox Code Playgroud)

编译器声明“ISO C++ 禁止声明没有类型的‘SpecialList’”。

编辑 Point 和 SpecialList 都包含在这个类的定义中。作为一个更详细的例子,

// SomeClass.h
#include "SpecialList.h"
#include "Point.h"

class SomeClass
{
public:
    SomeClass();
    virtual SpecialList<Point> *getPoints() const;
//snip
};
Run Code Online (Sandbox Code Playgroud)

还是没解决。。

c++ templates

1
推荐指数
1
解决办法
293
查看次数

标签 统计

c++ ×2

templates ×2

c ×1

inheritance ×1