Можете ли вы рассказать мне, что не так с этим фрагментом кода? Меня спросили об этом в интервью, и я не уверен, что с ним не так.Разница между указателем и умным указателем
tClass - это тестовый класс с методом printSomething, который печатает члены tClass.
tClass * A = new tClass();
f(A);
A->printSomething();
auto_ptr<tClass> * B = new tClass();
f(B);
B-> printSomething();
или что это за трюк.
Это может показаться глупым: что такое функция f()? – beta0x64
Too add to ChrisW, 'f', вероятно, не принимает аргумент' auto_ptr', а 'auto_ptr' не преобразуется в собственный указатель, поэтому вам нужно' f (B.get()) '. – Potatoswatter
что если f является 'template void f (T ptr) {ptr-> printSomething(); } '? –
SingleNegationElimination