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

Đề tài: [ Solved ]Hỏi về class?

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

    Question [ Solved ]Hỏi về class?

    cho mình hỏi muốn truy cập vao thành phần tọa độ trong bài nay thì phải làm như thế nào?
    dùng : p.x thì báo lỗi.
    mong các pro chỉ giúp
    C++ Code:
    1. #include<stdio.h>
    2. #include<istream.h>
    3. #include<conio.h>
    4.  
    5. class POINT
    6. {
    7.     int x;
    8.     int y;
    9. public:
    10.     void set_xy(int a,int b)
    11.     {
    12.         x=a;
    13.         y=b;
    14.     }
    15.     void display()
    16.     {
    17.         printf("hoanh do : %d\ntung do : %d\n",x,y);
    18.     }
    19.  
    20. };
    21.  
    22. void main()
    23. {
    24.     POINT p;
    25.     int a,b;
    26.  
    27.     printf("hoanh do : ");
    28.     scanf("%d",&a);
    29.     printf("tung do : ");
    30.     scanf("%d",&b);
    31.     p.set_xy(a,b);
    32.     p.display();   
    33. }
    Đã được chỉnh sửa lần cuối bởi rox_rook : 22-09-2008 lúc 12:21 AM.

  2. #2
    Ngày gia nhập
    09 2007
    Bài viết
    724

    trong c++ nó qui ước là nếu không khai báo các từ khóa tầm vực thì nó sẽ auto hiểu là private. cho nên nó không thể cho bạn thao tác trược tiếp đến các thuộc tính như vậy được.

    để thao tác được với nó bên ngoài phạm vi của lớp thì bạn phải để nó với từ khóa tầm vực là public.
    hay là bạn thêm vào 2 hàm set và get giá trị cho nó.
    khi cân set thì gọi hàm set. khi cần get thì gọi hàm get(cách này khuyên dùng.)


    chúc bạn thành công


    ps: lần sau bạn bỏ code vào các tag code, php cho dễ đọc nhé.
    Đã được chỉnh sửa lần cuối bởi zkday2686 : 11-09-2008 lúc 01:51 PM.

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

    Trích dẫn Nguyên bản được gửi bởi khanh_0507 Xem bài viết
    cho mình hỏi muốn truy cập vao thành phần tọa độ trong bài nay thì phải làm như thế nào?
    dùng : p.x thì báo lỗi.
    ngay chỗ p.x này theo mình viết thì được gọi là vi phạm tính bao gói của lập trình hướng đối tượng
    còn về phần truy cập vào thành phần tọa độ thì mỉnh nghĩ là nên làm như sau
    .....

    Code:
    Point p;//khai bao đối tượng p của lớp Point
    p.set_xy(int a,int b);
    p.display();// truy cap vao thanh phan toa do x, y
    .......

  4. #4
    Ngày gia nhập
    12 2007
    Bài viết
    54

    to khanh_0507 bài của bạn mình ko thấy có gì sai , mình cũng ko hiểu ý bạn là muốn lấy ra hoành độ x, tung độ y trong hàm main à
    Rất mong được mọi người giúp đỡ :

    Kiến thức mình biết chỉ là hạt cát trên sa mạc

  5. #5
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Lập trình OOP ai lại gọi thẳng cái p.x như bạn bao giờ :|
    -_-;;
    C++ Code:
    1. class POINT {
    2.     private x, y;
    3.    
    4.     public set_x(int x) {
    5.         this.x = x;
    6.     }
    7.     public get_x() {
    8.         return this.x;
    9.     }
    10.     public set_y(int y) {
    11.         this.y = y;
    12.     }
    13.     public get_y() {
    14.         return this.y;
    15.     }
    16.    
    17.     public set(int x, int y) {
    18.         this.set_x(x);
    19.         this.set_y(y);
    20.     }
    21. }
    None!

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

  1. [ Solved ]Hỏi về xử lý với nhiều class !
    Gửi bởi pen&pen trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 21-11-2008, 04:45 PM
  2. [ Solved ]Lỗi class với goto
    Gửi bởi ngocnam_it trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 10
    Bài viết cuối: 16-11-2008, 02:40 PM
  3. [ Solved ]Class hàng bán
    Gửi bởi luxiphe89 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 26
    Bài viết cuối: 09-11-2008, 10:04 AM
  4. [ Solved ]Hỏi về phương thức trong lớp (class )!
    Gửi bởi camping29 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 07-10-2008, 03:31 PM
  5. [ Solved ]Hoàn thiện chương trình class phân số
    Gửi bởi thangit trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 15-09-2008, 06:57 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