Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 21 kết quả

Đề tài: Làm thế nào để khởi tạo giá trị cho các Data members trên C++?

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

    Red face Làm thế nào để khởi tạo giá trị cho các Data members trên C++?

    Chào các bạn, tiếp tục những câu hỏi hay kỳ trước. Câu hỏi lần này là:

    Chẳng hạn mình có 1 lớp Test như sau:

    Code:
    class Test {
    public:
    Test();
    ...
    private:
    int x=100; //báo lỗi: không thể khởi tạo giá trị x=100 như thế này
    };
    Như vậy, nếu tôi muốn khởi tạo giá trị bắt đầu của biến x trong lớp Test của tôi là 100 thì tôi phải làm thế nào?

    Trả lời:

    Theo ý kiến của 1 số bạn thì có 2 cách để khởi tạo giá trị cho các Data members:

    Ta có lớp Test, ví dụ trong đó có các dữ liệu là các biến x, y, z thuộc kiểu dữ liệu X, Y và Z tương ứng

    Code:
    Test (X a, Y b, Z c) : x(a), y(b), z(c)
    {
       ...
    }
    
    Test (X a, Y b, Z c) 
    {
       x = a;
       y = b;
       z = c;
       ...
    }
    Câu hỏi:
    1. Hai cách trên đều khởi tạo các giá trị cho x, y và z theo a, b và c. Hai cách khởi tạo đó có hoàn toàn tương đương nhau không? Hãy giải thích.
    2. Rút ra kết luận gì?
    Đã được chỉnh sửa lần cuối bởi Mr Bin : 10-04-2009 lúc 08:31 PM.

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

    Đơn giản là init qua constructor !

  3. #3
    Ngày gia nhập
    04 2007
    Bài viết
    134

    Cái này là kiến thức cơ bản, có gì vui đâu mà đố

  4. #4
    Ngày gia nhập
    10 2008
    Bài viết
    178

    sao lại thích lôi kiến thức học được trên trường ra đố nhỉ nản

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

    thêm static const vào trước int x=100;
    code ra gió bão

  6. #6
    Ngày gia nhập
    04 2009
    Bài viết
    9

    Mặc định Làm thế nào để khởi tạo giá trị cho các Data members trên C++?

    @rua_con: Có gì mà phải phàn nàn, làm như thế ai mà dám chia sẻ kiến thức nữa :-??.
    đang học việc, khoai quá...

  7. #7
    Ngày gia nhập
    07 2007
    Nơi ở
    TP.HCM
    Bài viết
    199

    Không biết thì hỏi đại đi, có gì đâu mà phải đố. =))

  8. #8
    Ngày gia nhập
    10 2008
    Bài viết
    178

    Trích dẫn Nguyên bản được gửi bởi duro Xem bài viết
    @rua_con: Có gì mà phải phàn nàn, làm như thế ai mà dám chia sẻ kiến thức nữa :-??.
    tớ thấy cái tiêu đề có chữ đố đọc vào mất cảm tình

  9. #9
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Chữ đố là mình ghi thêm vào đấy,các bạn không nên phản ứng mạnh như thế

  10. #10
    Ngày gia nhập
    10 2008
    Bài viết
    178

    lâu rồi mà không thấy ai trả lời vấn đề này mình xin trả lời
    PHP Code:
    class Test {
    public:
    Test();
    ...
    private:
    int x=100//báo lỗi: không thể khởi tạo giá trị x=100 như thế này
    }; 
    ta khởi tạo bằng cách thông qua hàm dựng
    viết như sau
    PHP Code:
    class Test
    {
        private:
            
    int a;
        public:
            
    Test(int);
            
    Test();
    };
    Test::Test(int _a)
    {
        
    _a 100;
        
    _a;
    }
    Test::Test()
    {
        
    0;

    nhưng giả sử class Test khai báo như sau
    PHP Code:
    class Test
    {
        private:
            const 
    int a;
        public:
            
    Test(int);
            
    Test();
    }; 
    thì hàm dưng
    PHP Code:
    Test::Test(int _a)
    {
        
    _a 100;
        
    _a;

    không thể chạy
    hoạc một ví dụ khác ta có class như sau
    PHP Code:
    class A
    {
        private:
            
    int a;
        public:
            
    A(int);
            
    //khong co ham dung khong doi
    };
    A::A(int _a)
    {
        
    a  _a;

    và bây jo ta có 1 class như sau
    PHP Code:
    class B
    {
        private:
            
    A a;
        public:
            
    B();

    }; 
    nếu ta viết hàm dưng của class B như sau
    PHP Code:
    B::B(A _a)
    {
        
    _a;

    thì chương trình báo lỗi.do class A không có hàm dựng không đối
    vấn đề có thể giải quyết bằng cách khai báo hàm dựng như sau
    PHP Code:
    B::B(A _a):a(_a)
    {

    mọi người đọc cho ý kiến

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

  1. Tự động lưu liên tục khi có data trên 1 textbox vào 1 file text theo đường dẫn D:\thao.txt?
    Gửi bởi thaodangxuan trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 3
    Bài viết cuối: 13-04-2013, 08:43 AM
  2. Types vs members
    Gửi bởi vietdev trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 08-10-2011, 11:46 AM
  3. Tìm group theo GID nếu thấy xuất ra members
    Gửi bởi thuyhang1001 trong diễn đàn Thắc mắc lập trình shell Linux
    Trả lời: 2
    Bài viết cuối: 14-06-2011, 09:06 PM
  4. happy new year to all members
    Gửi bởi kitti trong diễn đàn Giải trí - Thư giãn
    Trả lời: 32
    Bài viết cuối: 14-01-2011, 10:35 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