Tôi có một lớp học như thế này:bè chức năng từ một lớp templated
#include "Blarg.h"
// ...
class Foo : public Bar {
// ...
static double m_value;
// ...
};
Và một số khác như thế này:
template<class X, class Y>
class Blarg : public Bar {
// ...
void SetValue(double _val) { Foo::m_value = _val; }
// ...
};
Kể từ Foo
's m_value
được tin (và tôi muốn giữ theo cách đó), tôi nghĩ tôi sẽ khai báo hàm SetValue
làm bạn với lớp Foo
để có thể truy cập thành viên tĩnh khi cần.
tôi đã cố gắng khai dọc theo những dòng trong khu vực công cộng Foo
's:
template<class X, class Y> friend void Blarg<X, Y>::SetValue(double _val);
template<class X, class Y> friend void Blarg::SetValue(double _val);
friend void Blarg::SetValue(double _val);
... nhưng không may mắn trong việc biên soạn. Cú pháp thích hợp cho điều này là gì, nếu có thể?
Bạn gặp phải lỗi nào với lỗi đầu tiên? – Praetorian
"không may mắn trong biên dịch" không phải là mô tả kỹ thuật về lỗi bạn gặp phải. –
Bạn cần phải viết một ';' sau mỗi định nghĩa lớp. –