0
如何在不改變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
私人。
目前沒有輸出。預期的行爲是什麼?怎麼了? – 2010-08-10 12:07:29
@aman:你認爲你在寫'friend void Test <>(T);'? – 2010-08-10 12:10:36
尼爾,你可以讓我知道爲什麼被標記爲國防部的關注? – 2010-08-10 12:11:38