在c++中自动更新新结构体中的相关值

Automatically update related values in a new struct in c++

本文关键字:结构体 更新 c++      更新时间:2023-10-16

我想根据我的需要定义一个新的数据类型,当我更新一个变量时,我想在不调用新函数的情况下更新其他变量。

考虑一下:

struct myNode {
    short rows;
    short cols;
    short channels;
    Mat data;
};

想象一下,我正在更新Mat data。我想让rows,cols and channels自动更新。我可以写另一个方法来更新,但它是不必要的调用新方法,每次我更新data

我找不到关于它的任何东西。我该怎么做呢?

当您使用c++时,您可以使用datasetter函数,并通过setter function更新data

示例代码可能看起来

struct myNode{
    short rows;
    short cols;
    short channels;
    Mat data;
    void setData(const Mat& d)
    {
        //set Rows, cols, channels according to your wish.
        this->data = d;
    }
};

使用class更好的解决方案

class myNode{
    short rows;
    short cols;
    short channels;
    Mat data;
    public:
    void setData(const Mat& d)
    {
        //set Rows, cols, channels according to your wish.
        this->data = d;
    }
    Mat getData()
    {
        return this->data;
    }
};

实际上在c++中,classstruct是等价的,除了struct有默认的public成员,类有默认的private成员。