Tôi biết rằng tôi có thể có được một con trỏ tới thành viên dữ liệu cho một lớp học hoặc struct nhưng dòng cuối cùng của đoạn mã sau thất bại trong việc biên dịch:Chuyển đổi thành viên dữ liệu để làm mất hiệu lực *
struct abc
{
int a;
int b;
char c;
};
int main()
{
typedef struct abc abc;
char abc::*ptt1 = &abc::c;
void *another_ptr = (void*)ptt1;
}
tại sao có thể không Tôi chuyển đổi ptt1 để another_ptr? Chúng ta đang nói về con trỏ vì vậy một con trỏ nên có một chiều hướng tương tự như nhau (mặc dù khái niệm khác nhau)
Thông báo lỗi là gì? –
"typedef struct abc abc;" Có thật không? –
Tôi đang sử dụng MSVC2012: lỗi C2440: 'loại diễn viên': không thể chuyển đổi từ 'char abc :: *' thành 'void *' – Paul