Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: [ Solved ]Hỏi về các thao tác khai báo trên <Class>.

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    78

    Mặc định [ Solved ]Hỏi về các thao tác khai báo trên <Class>.

    - Mình đang học OOP, cụ thể là Class.Xin hỏi các member một số ý sau đây, mình có nêu sẵn các ví dụ để so sánh...
    Phần I:
    Code:
    class Point
    {
    	int xVal,yVal;
    	public:
    		// inline function
    		void SetP(int x,int y)
    		{
    			xVal = x;
    			yVal = y;
    		}
    		void OffsetP(int x,int y)
    		{
    			xVal = xVal + x;
    			yVal = yVal + y;
    			return(xVal + yVal);
    		}
    };
    Code:
    class Point
    {
    	int xVal,yVal;
    	public:
    		void SetP(int ,int );
    		void OffsetP(int ,int );
    };
    - Ở đoạn Code thứ nhất là tôi định nghĩa hàm bên trong lớp (inline).
    - Ở đoạn Code thứ hai là tôi định nghĩa bên ngoài lớp.
    + Theo tôi đọc trong Ebook thì ngta nói hàm inline thì xử lý nhanh hơn hàm định nghiã bên ngoài lớp đáng kể.Vậy các bạn có ý kiến jì về điều này?Hãy nêu ý kiến so sánh của các bạn nhé..

    + Muốn định nghĩa hàm inline bên ngoài Class thì thêm từ khóa inline vào đúng hok?

    Phần II:Về truy xuất các biến private trong Class.
    - các biến hay thành phần private trong Class chỉ có các hàm thành viên của nó mới có quyền truy xuất thì tôi đã hiểu.Nhưng...

    - Làm sao mà tôi thử gán giá trị ban đầu cho các biến đó ko đc nhỉ..bị error!!!
    Code:
    class Point
    {
    	int xVal = 1; // Error!
            int yVal = 1;
    	public:
    		void SetP(int ,int );
    		void OffsetP(int ,int );
    };
    - Hồi trước tôi có hỏi làm sao ta hay sử dụng các hàm set_values() trong OOP đó.Bi jờ tôi cũng hiểu tại sao rồi.Có phải ta ko khởi gán hay đặt giá trị trước đc cho các biến private hok?
    - Trong khi đó, khi thao tác gán đó trong một hàm thuộc Class đó lại ko bị lỗi.Ví dụ:

    Code:
    class Point
    {
    	int xVal,yVal;
    	public:
    		// inline function
    		void SetP(int x,int y)
    		{
    			xVal = x;
    			yVal = y;
    		}
    		void OffsetP(int x,int y)
    		{
    			xVal = 100;
    			yVal = 100;
    			return(xVal + yVal);
    		}
    };
    - Tôi có dịp đọc bài viết "Lỗi về các thứ tự khai báo trong Clas rồi" của R_R nhưng mới học nên chỉ hiểu sơ thôi, có jì các member hướng dẫn với nhé...
    - Đó là các thắc mắc ban đầu của tôi, mong các bạn đóng góp ý kiến nhé..Thanks.
    Đã được chỉnh sửa lần cuối bởi hacker_mubaohiem : 16-03-2008 lúc 03:21 PM.
    No way, No success..

  2. #2
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    int xVal = 1; // Error!
    int yVal = 1;
    There's no such a thing to do this way.
    Class có constructor để làm chuyện này :
    C++ Code:
    1. Point():xVal(1), yVal(1){}
    Inline function chỉ dùng cho những function nào nhỏ và gọn thui, inline sẽ tạo ra 1 copy -> tăng performance -> drawbacks to memory -> giả sử gọi hàm 1000 lần ?
    set and get chỉ là 1 hình thức mà các sách giáo khoa thường dùng để giảng dạy, nói chung cũng tuỳ trường hợp và tuỳ vào cách design class đó ra sao. Đôi khi không dùng cũng được.

  3. #3
    Ngày gia nhập
    03 2008
    Bài viết
    78

    Ah thì ra là vậy...?Cám ơn nhiều nhé!

    - Sẵn tiện hỏi bạn có bài tâp nào về "Khai báo và thao tác trên Class hok?". có thể cho tui vài bài cơ bản để practice lun.Nếu bạn có Ebook thì hay wá...ko thì bạn cho cũng dc?
    No way, No success..

  4. #4
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Code:
    How to program C++ Deitel 5th edition !
    Sách giáo khoa ở trường tui, 1 cuốn sách tuyệt vời dành cho những người mới học. Đọc làm hết BT trong đó thì sẽ cảm thấy khác liền.
    Vào kho ebook C++ hoặc không có thì vào updatesofts.com mà tìm bảo đảm có.

Các đề tài tương tự

  1. Khai báo một struct trong 1 class như thế nào?
    Gửi bởi hoanglamth1 trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 1
    Bài viết cuối: 22-11-2011, 10:42 AM
  2. Kỹ thuật C++ Con trỏ hàm khai báo trong class như thế nào?
    Gửi bởi kukopuka trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 30-03-2011, 05:02 PM
  3. Kỹ thuật C++ thắc mắc về khai báo hàm trong class
    Gửi bởi manocanh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 01-12-2010, 11:28 AM
  4. [ Solved ]Thắc mắc nhỏ về khai báo kiểu struct
    Gửi bởi writerashe trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 17-09-2008, 11:29 AM
  5. [ Solved ]Thắc mắc về <Class> trong OOP.
    Gửi bởi hacker_mubaohiem trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 14-03-2008, 04:15 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn