Có khả năng có chỉ thị using
có phạm vi giới hạn trong một lớp không?"Sử dụng" khai báo với phạm vi chỉ trên lớp hiện tại?
Lưu ý rằng những gì tôi muốn "sử dụng" không được chứa trong phụ huynh của lớp hiện tại.
Để đơn giản, giả sử các exmple sau:
Một điều thú vị biết là, nếu using
chỉ được bao gồm, nếu một tiêu đề được bao gồm:
MyClassFoo.h:
#include<vector>
using std::vector; //OK
class foo
{
}
Và trong
NewHeader.h
#include "MyClassFoo.h"
...
cách tôi có thể ngăn "using std::vector
" thành v có thể ở đây?
Có một khả năng để tạo ra một loại bí danh templated cho "std :: vector", sau đó được gọi là "vector"? Bằng cách đó, nó sẽ làm giống như những gì tôi muốn sử dụng std :: vector để làm bên trong lớp –
Có, các khai báo 'using' có thể được tạo khuôn mẫu khi tạo các bí danh kiểu, và được gọi là bí danh kiểu' vector' đó nó nằm trong một phạm vi khác từ 'std :: vector'. –
Tôi nghĩ rằng điều đáng nói là đây không phải là * sử dụng chỉ thị *, nó là * sử dụng khai báo *. Sử dụng chỉ thị giới thiệu ** không gian tên **. –