溫馨提示×

如何通過C++的set和get實現(xiàn)數(shù)據(jù)驗證

c++
小樊
81
2024-09-25 01:39:15
欄目: 編程語言

在 C++ 中,使用 setget 成員函數(shù)可以實現(xiàn)對數(shù)據(jù)的有效性檢查和驗證。以下是一個簡單的示例,展示了如何使用這些方法驗證一個整數(shù)是否在指定范圍內(nèi):

#include <iostream>
#include <set>

class DataValidator {
private:
    int data;
    std::set<int> min_max_range;

public:
    DataValidator(int data, std::set<int> min_max_range) : data(data), min_max_range(min_max_range) {}

    bool setData(int data) {
        if (validateData(data)) {
            this->data = data;
            return true;
        } else {
            std::cout << "Invalid data. Data not set." << std::endl;
            return false;
        }
    }

    int getData() const {
        return data;
    }

private:
    bool validateData(int data) const {
        if (data >= min_max_range.begin() && data <= min_max_range.end()) {
            return true;
        } else {
            return false;
        }
    }
};

int main() {
    std::set<int> range = {1, 100};
    DataValidator validator(0, range);

    validator.setData(50);
    std::cout << "Data: " << validator.getData() << std::endl;

    validator.setData(200); // This will be considered as invalid data
    std::cout << "Data: " << validator.getData() << std::endl;

    return 0;
}

在這個示例中,我們創(chuàng)建了一個名為 DataValidator 的類,它包含一個整數(shù) data 和一個表示允許的最小和最大值的集合 min_max_range。我們使用 setData 成員函數(shù)設(shè)置數(shù)據(jù),并在設(shè)置之前使用 validateData 函數(shù)驗證數(shù)據(jù)是否在允許的范圍內(nèi)。如果數(shù)據(jù)有效,則設(shè)置新的數(shù)據(jù)值;否則,不更改當(dāng)前值。getData 成員函數(shù)用于獲取當(dāng)前的數(shù)據(jù)值。

0