Nhờ xem giúp code về class

Mình mới học class. mn xem code của mình thế này có được không?

#include <iostream>

using namespace std;
class vongtay{
private:
    int *sovong_;

public:
    void nhap(){
        int n;
        cin >> n;
        sovong_ = &n;
    }
    void tinhsovongtay( ){
    if (*sovong_ <= 7 )
        cout << 7 - *sovong_ << " " << *sovong_;
    else{
          if ( (*sovong_ / 7) % 2 == 1 )
            cout << (*sovong_ % 7) << " " << 7 - (*sovong_ % 7);
          else
            cout << 7 - (*sovong_ % 7) << " " << *sovong_ % 7;
        }
    }
};
int main()
{
    vongtay test;
    test.nhap();
    test.tinhsovongtay( );
    return 0;
}

Trong hàm nhap() của bạn. Vì n là biến cục bộ, nên hàm này gần như là vô tác dụng.
Lý do: sovong_ trỏ tới biến n. Nhưng khi hàm nhap() kết thúc, biến n bị hủy, nên sovong_ đang trỏ tới một ô nhớ rác.

Thay vì để sovong_ là con trỏ, thì bạn có thể để kiểu int vẫn được, rồi trong nhap() thì bạn chỉ cần dùng vài câu lệnh này là nhập được:

cout << "Nhap so vong: ";
cin >> sovong_;
4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?