自己实现一个继承vtk的类时

要使用

vtkStandardNewMacro()

如果全部类直接在头文件中实现,然后最后加上

vtkStandardNewMacro()这句 会出现编译出错,例如参数不匹配

解决办法:

vtkStandardNewMacro()是用在源文件中的  放在实现中才不会出错。

例子如下:

头文件:

#pragma once
#include"stdafx.h"
#include<vtkInteractorStyleImage.h>
//#include<vtkObject.h>
#include <vtkObjectFactory.h>

class VTK_EXPORT BMPInteractorStyle : public vtkInteractorStyleImage
{
public:
static BMPInteractorStyle* New();
vtkTypeMacro(BMPInteractorStyle, vtkInteractorStyleImage);

virtual void OnLeftButtonDown();

};

 

源文件:

#include"stdafx.h"
#include"BMPInteractorStyle.h"

vtkStandardNewMacro(BMPInteractorStyle);
void BMPInteractorStyle::OnLeftButtonDown()
{
//std::cout << "Pressed left mouse button." << std::endl;
// Forward events
vtkInteractorStyleImage::OnLeftButtonDown();
}

 

这样编译就不会出错了

posted on 2013-05-31 23:05  30斤大番薯  阅读(2493)  评论(0编辑  收藏  举报