C++ 使用级联和PLP创建类

C++ 使用级联和PLP创建类,c++,class,C++,Class,因此,我试图创建一个包含数据成员的类(版本)。成员函数是setter(允许级联调用)和getter(使用PLP和handle常量对象)。在int main中,它允许用户输入数字,然后需要使用级联成员函数在一条语句中调用所有数据成员,并通过调用getter显示版本,让它们只返回数据成员的值 我几乎对所有内容都进行了编码,但我觉得我遗漏了一个步骤,或者对参数做了一些错误的操作。我的错误是我的二传手需要一个“'),但我觉得这是另一个问题。我没有得到所有关于如何做到这一点的笔记,所以有人能告诉我我遗漏了

因此,我试图创建一个包含数据成员的类(版本)。成员函数是setter(允许级联调用)和getter(使用PLP和handle常量对象)。在int main中,它允许用户输入数字,然后需要使用级联成员函数在一条语句中调用所有数据成员,并通过调用getter显示版本,让它们只返回数据成员的值

我几乎对所有内容都进行了编码,但我觉得我遗漏了一个步骤,或者对参数做了一些错误的操作。我的错误是我的二传手需要一个“'),但我觉得这是另一个问题。我没有得到所有关于如何做到这一点的笔记,所以有人能告诉我我遗漏了什么或需要修复什么吗?谢谢

#include<iostream>

using namespace std;

class Version
{
private:
    int major, minor, service_pack;
public:
    Version();
    Version& setMajor(int maj);
    Version& setMinor(int min);
    Version& setService_pack(int sp);
    int getMinor(Version *const this);
    int getMajor(Version* const this);
    int getService_pack(Version* const this);
};

Version::Version()
{
    major = 0;
    minor = 0;
    service_pack = 0;
}

Version& Version::setMinor(int min)
{
    minor = min;
    return *this;
}

Version& Version::setMinor(int maj)
{
    major = maj;
    return *this;
}

Version& Version::setMinor(int sp)
{
    service_pack = sp;
    return *this;
}

int Version::getMinor(Version* const this)
{
    return this->minor;
    (*this).minor;
}

int Version::getMajor(Version* const this)
{
    return this->major;
    (*this).major;
}

int Version::getService_pack(Version* const this)
{
    return this->service_pack;
    (*this).service_pack;
}

int main()
{
    int minor, major, service_pack;
    Version a;
    cout << "Enter minor, major, and service pack: " << endl;
    cin >> minor, major, service_pack;

    a.setMinor(minor).setMajor(major).setService_pack(service_pack);

    cout << "Major: " << a.getMajor() << "Minor: "<< a.getMinor << "Service Pack: " << a.getService_pack();

    system("PAUSE");

}
#包括
使用名称空间std;
类版本
{
私人:
int大调、小调、服务包;
公众:
版本();
版本和设置专业(内部专业);
版本&setMinor(int-min);
版本和设置服务包(int sp);
int getMinor(版本*const this);
int getMajor(版本*const this);
int getService_包(版本*const this);
};
Version::Version()
{
专业=0;
小调=0;
服务包=0;
}
版本和版本::setMinor(int-min)
{
次要=最小值;
归还*这个;
}
版本和版本::setMinor(int-maj)
{
主修=主修;
归还*这个;
}
版本和版本::setMinor(int sp)
{
服务包=sp;
归还*这个;
}
int Version::getMinor(Version*const this)
{
返回此->小调;
(*本条)。未成年人;
}
int Version::getMajor(Version*const this)
{
返回此->专业;
(*本节);
}
int Version::getService_pack(Version*const this)
{
返回此->服务包;
(*此)。服务包;
}
int main()
{
int小调、大调、服务包;
a版;
cout小调、大调、服务包;
a、 设置次要(次要)。设置主要(主要)。设置服务包(服务包);

cout对于diplaying
a.getMinor()
,您在
main()
中缺少parentheses。如果没有括号,您将引用成员函数本身

如果返回值,getter原则上不应接受任何参数。在任何情况下,都应避免传递名为
this
的参数

您可以做的进一步改进是将getter声明为
const

int Version::getMinor() const
{
    return minor;   // this-> is only needed to disambiguate
}

哦,好眼力!但是你知道我的getter参数是否正确吗?不,你的getter不应该接受任何争论。