Project Ashe
Junior Member
C++ dùng bộ nào code giao diện đẹp mà nhẹ nhất ae
Sent from Google Pixel 4 XL using vozFApp
Sent from Google Pixel 4 XL using vozFApp
Qt đi bácC++ dùng bộ nào code giao diện đẹp mà nhẹ nhất ae
Sent from Google Pixel 4 XL using vozFApp
Trong quora có 1 thớt về ++a + ++a luôn. Thấy có 1 ông comment ko nên sử dụng biểu thức ++a + ++a trong C và Java vì kết quả sẽ bị rối loạn.Nó k phải là data race nhé.
Mà do execution order trong C++ k phải từ trái sang phải mà tùy compiler, standard k quy định nên gọi là undefined behavior. Vào cppreference mà đọc. Đừng chém lưng tung.
Edit: Hoặc đọc comment trước của t ấy, thằng Bing giải thích khá chuẩn đó
thím search vtable. có virtual thì có vtable và hoạt động theo vtable, còn không có virtual thì datatype của variable là gì nó gọi luôn function của thằng đó.Bác nào pro có thể giải đáp giúp em trường hợp này được không ạ
Em có class Cat kế thừa Animal với override func sound().
Theo e được biết thì:
View attachment 2339021 View attachment 2339022
- Khi upcasting, từ khoá virtual ở func cha giúp pointer Cha có thể trỏ đến func Con.
- Nhưng khi downcasting thì ví dụ của e lại ra kết quả ngược: nếu có virtual thì chọc vào func Cha, không có thì chọc vào func Con.
virtual function thì nó vào vtable ở runtime để xác định function cần gọi, không phải virtual function thì nó nhìn theo type mà xác định function cần gọi lúc compile luôn. Code bên trái thím đã khai báo virtual nên class này sẽ có vtable, code bên phải không có khai báo nên nó xác định luôn lúc compile. Type đang làBác nào pro có thể giải đáp giúp em trường hợp này được không ạ
Em có class Cat kế thừa Animal với override func sound().
Theo e được biết thì:
View attachment 2339021 View attachment 2339022
- Khi upcasting, từ khoá virtual ở func cha giúp pointer Cha có thể trỏ đến func Con.
- Nhưng khi downcasting thì ví dụ của e lại ra kết quả ngược: nếu có virtual thì chọc vào func Cha, không có thì chọc vào func Con.
Cat*
thì nó gọi Cat::sound
. Vấn đề không phải upcast hay downcast, mà là function đó có trong vtable hay không thôi.thím search vtable. có virtual thì có vtable và hoạt động theo vtable, còn không có virtual thì datatype của variable là gì nó gọi luôn function của thằng đó.
via theNEXTvoz for iPhone
Ui cảm ơn 2 thím nhé. Biết cái Vtable này thì dễ hiểu thật, trên trường lớp chả thấy giảng viên nói đến vấn đề nàyvirtual function thì nó vào vtable ở runtime để xác định function cần gọi, không phải virtual function thì nó nhìn theo type mà xác định function cần gọi lúc compile luôn. Code bên trái thím đã khai báo virtual nên class này sẽ có vtable, code bên phải không có khai báo nên nó xác định luôn lúc compile. Type đang làCat*
thì nó gọiCat::sound
. Vấn đề không phải upcast hay downcast, mà là function đó có trong vtable hay không thôi.
Có thời gian mà muốn học C++ thì kiếm cuốn C++ Primer, 5th Edition mà đọc thím, trên libgen có ấy. Trong trường thường chỉ dạy C++ ở mức tối thiểu thôi, muốn hiểu sâu hơn thì phải tự mình chủ động.Ui cảm ơn 2 thím nhé. Biết cái Vtable này thì dễ hiểu thật, trên trường lớp chả thấy giảng viên nói đến vấn đề này
Làm nhiều sẽ nhớ, chả có mẹo gì đặc biệt,em quen syntax c rồi các bác có mẹo nào giúp học nhớ syntax c++ nhanh không ? học lại từng tí một thì lười quá cái leetcode của em ko chuyển qua c đc
bác làm nhúng mảng nào vậy bác, em từ điện đang hướng theo autômtive linux bác có lời kinh nghiệm gì ko? em xin đc chỉ giáoLàm nhiều sẽ nhớ, chả có mẹo gì đặc biệt,
với tôi, người nghỉ code embedded c++ lâu, thì giờ kêu viết hello world tất nhiên sẽ google
Tôi làm dưới 10 năm thôi nên ko có kinh nghiệm cứng gì, chỉ khuyên fen nên có 1 open mindset, nghĩ rộng ra.bác làm nhúng mảng nào vậy bác, em từ điện đang hướng theo autômtive linux bác có lời kinh nghiệm gì ko? em xin đc chỉ giáo
quen syntax làm méo gì, cái quan trọng là hiểu được bản chất của ngôn ngữ, có giải pháp xử lý vấn đềem quen syntax c rồi các bác có mẹo nào giúp học nhớ syntax c++ nhanh không ? học lại từng tí một thì lười quá cái leetcode của em ko chuyển qua c đc