Tôi đang gặp khó khăn với mã sau đây. Về cơ bản, tôi có một lớp Foo và thanh lớp lồng nhau, và bây giờ tôi muốn chuyển một con trỏ của đối tượng lớp Bar tới một hàm, nhưng nó không biên dịch. ai có thể giúp tôi việc này không? Cảm ơn bạn.Chức năng mẫu C++ lấy lớp mẫu làm tham số
template <typename T>
struct Foo
{
struct Bar
{
T data_;
};
Bar bar_;
};
template <typename T>
void func(Foo<T>::Bar* bar) // Why is this line wrong???
{
}
int main()
{
Foo<int> foo;
foo.bar_.data_ = 17;
func(&foo.bar_);
return 0;
}
có thể trùng lặp của [C++, đối số mẫu không thể được suy luận] (http://stackoverflow.com/questions/6060824/c-template-argument-can -Không được suy luận) –
(ít nhất, một bản sao một khi giải quyết vấn đề 'typename' rõ ràng, mà VC++ có lẽ sẽ để trượt như bình thường anyway) –