三巨头的统治

时间:2017-07-28 07:39:34

标签: class pointers constructor

我对以下问题感到困惑,按照我的理解,我做了这个程序,但它崩溃了我做错了什么?如果有人能帮助我,我将不胜感激。

我的main.cpp看起来像这样:

    #include <iostream>
    #include <iomanip>
    #include "Number.h"

    using namespace std;

    int main()
    {
        Number n1(10);
        Number n2 = n1;
        n2.printNum();
        n2.addOne();
        n1 = n2;
        n1.printNum();

        return 0;
    }

然后我的头文件如下所示:

    #include <iostream>
    using namespace std;

    class Number
    {
        int *p;
        public:
            Number(int);
            void addOne();
            void printNum();
    };

我需要在那里完成构造函数的下面部分,它显示了我应该完成的部分的注释:

    #include <iostream>
    #include "Number.h"

    using namespace std;

    Number::Number(int a1)
    {
        *p = a1;//write the code needed to initialise the value of the   member variable with a1
    }
    void Number::printNum()
    {
    cout << "The number is " << *p << endl;
    }
    void Number::addOne()
    {
        *p++;//write the code needed to increment the value of the member variable by one.
    }

然后问题在下面询问我应该如何处理使用BIG THREE的代码?

考虑以下计划。完成类定义(要求的地方)并检查输出。您可以看到该程序一旦完成就可以正常运行。但是,专家建议在任何使用指针和新操作符的类中,最好遵循三巨头的规则。修改类定义以遵循三巨头的规则并提交新程序和输出。演示使用此指针。

谢谢 罗汉

0 个答案:

没有答案