6
Tôi đang cố truy cập thành viên typedef trong lớp cơ sở từ mẫu lớp dẫn xuất. Trong tên mẫu của tham số mẫu giống như tên của typdef trong lớp cơ sở.Truy cập lớp cơ sở typedef trong mẫu lớp dẫn xuất
#include <iostream>
using namespace std;
class no {
public :
typedef int T;
};
template<typename T> class no1 : public no {
public :
T obj;
};
int main() {
// your code goes here
no1<string> o ; o.obj = "1";
return 0;
}
14:24: error: invalid conversion from 'const char*' to 'no::T {aka int}' [-fpermissive]
no1<string> o ; o.obj = "1";
Trong mã trên, T là obj luôn là loại int. Làm thế nào tôi có thể buộc obj được tham số mẫu và không typdef khai báo trong lớp cơ sở?
Cảm ơn
Bạn không thể mà không cung cấp một chuyển đổi rõ ràng từ 'T' cho' int'. Cũng lưu ý rằng tham số mẫu 'T' chỉ _shadows_' no :: T', chúng không liên quan. –
Đó là câu hỏi của tôi là cách truy cập thông số mẫu T mà không thay đổi lớp cơ sở hoặc đổi tên tham số mẫu? – noname
Một lần nữa, bạn không thể. –