Как мне скомпилировать приведенный ниже код без изменения состояния данных int?
template<typename U>
void Test(U);
template< class T >
class B {
int data;
public:
friend void Test<>( T );
};
template<typename U>
void Test(U u) {
B < int> b1;
b1.data = 7;
}
int main(int argc, char *argv[])
{
char i;
Test(i);
system("PAUSE");
return 0;
}
Приведенный выше код вызывает ошибку компилятора, поскольку b1.data
является приватным в Test
с U = char
.