Я только начал изучать C++, и хотел сделать статический класс чтобы к его методам можно было обратиться, не создавая объект smartRandom:
smartRandom.h:
namespace sr
{
class smartRandom
{
public:
static void init();
static int random(int from, int to);
};
};
smartRandom.cpp:
namespace sr
{
class smartRandom
{
static void init()
{
srand(time(NULL));
}
static int random(int from, int to)
{
return from + rand() % (to - from + 1);
}
};
}
В программе вызываю класс так:
sr::smartRandom::random(3, 10);
Но мне выходит 4 ошибки: Я попробовал исправить но появилось это:
Вы переопределяете class smartRandom в smartRandom.cpp. Определения методов и статических функций класса осуществляются с помощью операции разрешения контекста. Вот так:
smartRandom.h
#ifndef SMART_RANDOM_H_
#define SMART_RANDOM_H_
#include <cstdlib>
#include <ctime>
namespace sr
{
class smartRandom
{
public:
static void init();
static int random(int from, int to);
};
};
#endif
smartRandom.cpp
#include "smartRandom.h"
namespace sr
{
void smartRandom::init()
{
srand(time(NULL));
}
int smartRandom::random(int from, int to)
{
return from + rand() % (to - from + 1);
}
}
Файл, где у Вас main
#include "smartRandom.h"
int main()
{
sr::smartRandom::random(3, 10);
return 0;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я хотел бы удостовериться, что пишу все правильно и адекватноПодскажите пожалуйста какие ошибки присутствуют в коде и желательно советы,...
Написал программку для расставления букв в алфавитном порядке в любом словеПоставил setlocale(0, "rus")