C++ 如何在C+中的模型视图控制器之间传递数据+;实现MVC架构?

C++ 如何在C+中的模型视图控制器之间传递数据+;实现MVC架构?,c++,model-view-controller,view,controller,C++,Model View Controller,View,Controller,我的朋友认为,将模型obj传递给视图是可以的。但据我所知,这违反了MVCArch,因为如果view收到一个模型obj,它就知道模型类的存在。视图中的obj类可用于操纵模型类 根据MVC架构,哪个版本是正确的?如果没有提出一个解决方案,并解释如何在C++中实现MVC。 非常感谢。:) **********//版本1**************** 类模型 { int rollNO;字符串名称; 公众: void saveToDataBase() { name=//保存到数据库 rollNo=//保

我的朋友认为,将模型obj传递给视图是可以的。但据我所知,这违反了MVCArch,因为如果view收到一个模型obj,它就知道模型类的存在。视图中的obj类可用于操纵模型类

根据MVC架构,哪个版本是正确的?如果没有提出一个解决方案,并解释如何在C++中实现MVC。 非常感谢。:)

**********//版本1****************
类模型
{
int rollNO;字符串名称;
公众:
void saveToDataBase()
{
name=//保存到数据库
rollNo=//保存到数据库
}
void fetchFromDataBase()
{
name=//从数据库获取
rollNo=//从数据库获取
}
};
类控制器
{
m型,*pm;
观点五;
v、 getData(*pm);
pm->saveToDataBase();
m、 fetchFromDataBase();
v、 showData(m);
};
类视图
{
getData(型号*pm)
{
cin>>pm->rollNo;
cin>>pm->名称;
}
showData(m型)
{
库特罗诺;
雷顿·罗尔诺;
}
void showName(字符串名称)
{

在这里我看不到任何MVC。现在你几乎看不到任何MVC。桌面GUI框架很久以来就将视图和控制器结合在一起,web UI的工作方式也完全不同。问问你自己,你将如何交换控制器。一个负责绘制按钮和接收点击的
按钮
类ents已经违反了MVC。MVC已经成为历史。你应该从中吸取的一个原则是内容和UI的分离。对不起,IDK关于MVC和其他东西,比如它与“按钮类”的关系.我们正在接受培训,这是我们第一次学习MVC。我们被告知,在MVC中,我们在模型类中编写所有业务逻辑,在视图类中编写UI,并使用控制器对它们进行管理。根据我们的需求和理解,我们提出了这两个版本的代码,根据我们的说法,这两个版本的代码正在实现MVC cuz db操作因此,如果你能提供查询的答案或者代码错误,比用C++实现MVC的一些示例代码,这将是很大的帮助。
***********              //version 1                ****************
class model
{
    int rollNO; string name;
    public:
        void saveToDataBase()
        {
            name=//save to data base
            rollNo=//save to data base
        }
        void fetchFromDataBase()
        {
            name=//get from data base
            rollNo=//get from data base
        }
};

class controller
{
    model m, *pm;
    view v;
    v.getData(*pm);
    pm->saveToDataBase();
    m.fetchFromDataBase();
    v.showData(m);
};



class view
{
    getData(model *pm)
    {
        cin>>pm->rollNo;
        cin>>pm->name;
    }
    showData(model m)
    {
        cout<<m.rollNo;
        cout<<m.name;
    }
};


 *****************        //version 2        **************************
class model
{
    int rollNO; string name;
    public:
        void saveToDataBase()
        {
            name=//save to data base
            rollNo=//save to data base
        }
        void fetchFromDataBase()
        {
            name=//get from data base
            rollNo=//get from data base
        }
};


class controller
{
    model m1,m2;
    view v;
    m1.name=v.getName();
    m1.rollNo=v.getRollNo();
    m1.saveToDataBase();
    m2.fetchFromDataBase();
    v.showName(m2.name);
    v.showRollNo(m2.rollNo);
};

class view
{
    void getName()
    {
        cin>>name;
        return name;
    }
    void getRollNo()
    {
        cin>>rollNo;
        retun rollNo;
    }
    void showName(string name)
    {
        cout<<name;
    }
    void showRollNo(int rollNo)
    {
        cout<<rollNo;
    }
};