2012-02-18 76 views
-1

我想让我的地图生成器用给定的tile填充地图的某些部分,但我不知道如何传递该值,我需要使用给定TYPE(它是参数)...例如:C++指向一个类的对象,而不是对象

void flood(/*???*/ pattern, double radius_val, tile *map[20][20], int x, int y) 
{ 
    if (radius_val<0) return; 
    map[x][y]=new pattern(); 
    flood(pattern,radius_val-1, map, x+1, y); 
    //... more code 
}; 

我不知道如何表达泛洪被他打算什么类型的对象,使...模式应在瓷砖类的一个孩子被人指指点点(例如tile_tree) 。

Thanx的任何帮助。

回答

3

函数参数不能是类型,因为函数参数保存值,类型不是值。然而,模板参数可以是类型。

template <typename pattern> 
void flood(double radius_val, tile *map[20][20], int x, int y) 
{ 
    if (radius_val<0) return; 
    map[x][y]=new pattern(); 
    flood<pattern>(radius_val-1, map, x+1, y); 
    //... more code 
}; 

基本上,这为您要使用的每个pattern一个新的功能,但没有打字了所有的函数定义的麻烦。

+0

所以在我的情况(我想tile_tree)如何使用这个功能?洪水(/ * args * /)? – 2012-02-18 14:28:45

+0

@kittyPL是的,正好。 – hvd 2012-02-18 14:29:42

+0

太棒了!工作,6分钟和检查,你是如此之快:D – 2012-02-18 14:33:07

相关问题