【发布时间】:2012-05-31 15:16:27
【问题描述】:
这就是问题所在——我有两个这样的类:
class A
{
//some fields and methods
void niceMethod();
};
class B : public A
{
void niceMethod();
};
class C : public A
{
void niceMethod();
};
和功能
void myFunc(A** arrayOfABC);
//双*是注意我要修改参数。
而我想做:
(*arrayOfABC)[i].niceMethod();
在我的函数中,当我将 Bs 或 Cs 数组传递给函数时,会完成不同的事情。
但后来我试着这样称呼它
B* bees = NULL;
myFunc(&bees);
我有“B** 的参数类型与 A** 类型的参数不兼容”。
我知道我可以将 B 或 C 作为 A 传递给 f(A) 之类的函数,但是指针有什么问题?
【问题讨论】:
-
您可以接受这样的事情吗?
B* bees = NULL; A* ptrs [] = {bees}; myFunc(ptrs); -
不错的解决方案,但我决定重新考虑我的 projectc 结构以避免这个问题。
标签: c++ function inheritance pointers