我对以下问题感到困惑,按照我的理解,我做了这个程序,但它崩溃了我做错了什么?如果有人能帮助我,我将不胜感激。
我的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的代码?
考虑以下计划。完成类定义(要求的地方)并检查输出。您可以看到该程序一旦完成就可以正常运行。但是,专家建议在任何使用指针和新操作符的类中,最好遵循三巨头的规则。修改类定义以遵循三巨头的规则并提交新程序和输出。演示使用此指针。
谢谢 罗汉