具有静态成员的C ++类对象计数器为随机

时间:2018-11-08 10:01:25

标签: c++ object random static counter

首先,我会进行研究,但由于我无法在课程中很好地学习,因此其他答案对我来说不可用。现在,我的老师从这段代码中询问我的计数器必须由静态成员初始化。而且,当我在该类中创建另一个对象时,它必须以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;
}

1 个答案:

答案 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();
}