私はC++を見て始めました。私は頭を抱くことができないいくつかの問題を抱えています。オブジェクト関数呼び出しからintを返す(基本)
私は、関数を持つクラスを作成し、その関数を呼び出して戻り値を読み取るという単純なことをしようとしています。
しかし、私は軽微な問題であると思うことに固執しています。
私はそれがメインからの呼び出しであることを知っています - > randomNumberはこのエラーを引き起こしますが、なぜ私は知らないのですか?私は幸運なしに関数から数値12を返そうとしました。
私は3つのファイル(main.cppに、Die.hとDie.cpp)
main.cppに
#include <string>
#include "Die.h"
using namespace std;
int main() {
Die * test = new Die();
cout << std::to_string(test->randomNumber(4)) << endl;
return 0;
}
ダイスを持っています。 h
#pragma once
#include <iostream>
#include <ctime>
#include <cstdlib>
class Die
{
public:
Die();
~Die();
void init();
void rollDie(int&, int&);
void rollDie(int*, int*);
int randomNumber(int);
};
Die.cpp
#include "Die.h"
Die::Die()
{
}
Die::~Die()
{
}
void Die::init() {
}
int randomNumber(int max) {
srand(static_cast<unsigned int>(time(0)));
return (rand() % max + 1);
}
void rollDie(int& die1, int& die2) {
}
void rollDie(int* die1, int* die2) {
}
脇に: 'randomNumber'で' srand() 'を呼び出さないでください。' main() 'で一度呼びます。書かれているように、すべてのコールでRNGを再シードしているため、1秒間にダイをロールするたびに同じ乱数が得られます。 – duskwuff
Noted、ありがとうsrandをメインに移動します:) –
重複の関連する回答:[定義されていない参照/未解決の外部シンボルエラーとは何ですか、どうすれば修正できますか?](http://stackoverflow.com/a/12574407/ 962089)。それは、一般的なエラーは、名前を修飾することを忘れていると言って大きな見出しを持つセクションです。 – chris