【发布时间】:2010-10-03 19:54:22
【问题描述】:
你能告诉我这段代码有什么问题吗?我在面试中被问到这个问题,我不确定它有什么问题
tClass 是一个带有 printSomething 方法的测试类,它打印 tClass 的成员。
tClass * A = new tClass();
f(A);
A->printSomething();
auto_ptr<tClass> * B = new tClass();
f(B);
B-> printSomething();
或者这是一个技巧问题。
【问题讨论】:
-
这听起来很愚蠢:函数 f() 是什么?
-
太添加到 ChrisW,
f可能不接受auto_ptr参数,auto_ptr不转换为本机指针,所以你需要f(B.get())。 -
如果 f 是
template <typename T> void f(T ptr) { ptr->printSomething(); }怎么办? -
@TokenMacGuy 甚至可能有两个
fs:重载。