Câu hỏi có chủ đề.Có thể xác định tại thời gian chạy là điểm trỏ đến lớp C++ hoặc tại lớp Objective-C?
Tôi muốn viết một số mẫu chức năng phổ biến cho các đối tượng xóa an toàn và tự hỏi là nó có thể sử dụng một cái gì đó như thế này:
template< class T > void SafeDelete(T*& pVal)
{
if(objc_is_cpp_object(pVal)){
delete pVal;
pVal = NULL;
}
else
[pVal release]
}
Tại sao bạn muốn sử dụng cùng một tên hàm cho các ngôn ngữ khác nhau? Tại sao bạn không thể phân biệt chúng bằng cách sử dụng một tên khác? – iammilind
C++ 'delete' và Obj-C' release' có nghĩa là những điều khá khác nhau; conflating hai dường như là một ý tưởng có vấn đề tốt nhất. –
Tôi nghĩ về tên gọi khác nhau trước tiên, tôi chỉ cảm thấy tò mò về nó có thể có cùng một câu hỏi cho cả hai ngôn ngữ. Và sau đó tôi nghĩ rằng nó có thể không phải là ý tưởng rất tốt mặc dù, nhưng vẫn feelt tò mò :-) Vì vậy, đây chủ yếu là câu hỏi lý thuyết. –