LƯU Ý: Tôi biết có nhiều câu hỏi đã nói về điều đó nhưng tôi vẫn là người mới bắt đầu và tôi không thể hiểu các ví dụ.const char * như một tham số hàm trong C++
Tôi có một nguyên mẫu chức năng mà đi như thế này:
int someFunction(const char * sm);
Ở đây, như bạn đã biết, const char * có nghĩa là chức năng này có thể chấp nhận const hoặc con trỏ-to-char không const. Tôi đã thử nội dung nào đó giống như vậy trong phần thân hàm:
someMemberVar = sm;
someMemberVar chỉ là một con trỏ tới char. Trình biên dịch cho tôi một lỗi nói với tôi: không thể chuyển đổi từ const char * sang char *.
Ở đây, tôi đã không vượt qua một hằng số, do đó, hoặc là sm hoặc someMemberVar không phải là hằng số. Vì vậy, những gì liên tục trình biên dịch đang nói về?
Chính xác 'someMemberVar' được khai báo là gì và thông báo lỗi chính xác mà bạn nhận được (thông báo bạn cung cấp không có ý nghĩa gì, vì vậy tôi nghi ngờ có lỗi đánh máy). –
Tôi đã sửa lỗi của mình. Nó tuyên bố như thế: char * someMemberVar; –
@Alan anh ấy chủ yếu là chính xác. char * có thể được đúc một cách an toàn thành const char *, vì vậy bạn có thể chuyển một char * vào phương thức đó giống như bạn sẽ làm một const char *. Trình biên dịch sẽ chỉ làm diễn viên cho bạn. – Herms