首先,我会进行研究,但由于我无法在课程中很好地学习,因此其他答案对我来说不可用。现在,我的老师从这段代码中询问我的计数器必须由静态成员初始化。而且,当我在该类中创建另一个对象时,它必须以1000、1001、1002进行计数。同样,我创建的第一个对象也必须具有一个随机数,该随机数不能是全局的,之后该随机数将被1计数。 我必须使用所有指针。您知道这对我来说确实很复杂,但这就是他想要的,正如他所说。 这是我的无效代码。
#ifndef POINT_H
#define POINT_H
#include <cstdlib>
#include <ctime>
class Point
{
private:
int x;
int y;
static int count;
public:
Point(int, int);
void objectCount()
{
srand((unsigned)time(0));
Point::count = rand();
Point::
count++;
}
void print();
};
#endif
和我的.cpp
#include "Point.h"
#include <iostream>
using namespace std;
Point::Point(int x, int y):x(x), y(y){}
void Point::print()
{
cout << "(" << x << "," << y << ")" << " " << count << endl;
}
答案 0 :(得分:0)
不清楚您要问什么,但您可能想要这样的东西:
#ifndef POINT_H
#define POINT_H
#include <cstdlib>
#include <ctime>
class Point
{
private:
int x;
int y;
static int count;
public:
Point(int, int);
int objectCount()
{
return count++;
}
void print();
static int initializeCount();
};
#endif
#include <iostream>
#include "Point.h"
using namespace std;
int Point::count = Point::initializeCount();
int Point::initializeCount()
{
srand((unsigned)time(0));
return rand();
}
Point::Point(int x, int y) :x(x), y(y)
{
objectCount();
}
void Point::print()
{
cout << "(" << x << "," << y << ")" << " " << count << endl;
}
int main()
{
Point p1(1,2);
p1.print();
Point p2(2,2);
p2.print();
}