@@ Huhu, xin chào mọi người ạ, lại là em đây, lần này là bài về con trỏ nâng cao, nghỉ Tết lâu quá em cũng có ôn lại mà k thấm lắm
Đề bài như hình ạ, em làm dc câu 1, nhưng mấy câu còn lại em chưa hiểu rõ lắm @@, mong mn có thể nói rõ cho em thêm về typedef và làm thử mấy ví dụ sau dc không ạ, có giải thích càng tốt ạ
Em xin chân thành cảm ơn
Khai báo địa chỉ của hàm bằng cách sử dụng typedef
Theo mình hiểu thì typedef này để code nhanh với gọn hơn thôi
VD:
bình thường bạn sẽ code với hàm struct là:
struct sinhvien
{...};
và nếu muốn tạo một dữ liệu nữa thuộc kiểu struct thì bạn lại gõ lại
struct sinhvien sinhvien1;
thì khi thêm typedef ở đầu struct ban đầu thì bạn chỉ cần gõ tên của hàm struct và tên dữ liệu bạn cần theo kiểu struct
VD:
typedef struct sinhvien
{...};
sinhvien sinhvien1;
1 Like
sửa tên hàm xyz
lại là (*Xyz)
, xóa hết mấy cái tên tham số là xong
void process();
int* inputArray(int& n);
typedef void (*Process)();
typedef int* (*InputArray)(int&);
...
Process p = process; //hoặc &process
InputArray ia = inputArray; //hoặc &inputArray
còn kiểu thì bỏ cái tên hàm đi nữa là xong:
void process(); --> kiểu là void (*)()
int* inputArray(int& n); --> kiểu là int* (*)(int&)
thêm cái dzui nữa là function trong C++ có thể hiểu là function pointer, mà function pointer deref nó lại ra function, mà function lại là function pointer… nên có thể viết như sau:
Process p =
************
** **
** **
**** **
** ******
**
**
******
process;
vẫn hợp lệ Tốt nhất là viết doc cho từng hàm theo kiểu này, rất là sành điệu
3 Likes