以下のコードサンプルでは、クラスダイはAttackDieが継承する基本クラスです。 AttackDieがインスタンス化されると、StatSysクラスのインスタンスと整数値に格納されたデータが必要になります。その結果、AttackDieのコンストラクタはStatSysのインスタンスと入力としての整数をとるように設計されています。私はAttackDieエラーC2511 - オーバーロードされたメンバー関数が見つかりません
: 'をオーバーロードされたメンバ関数では見られない'
AttackDie :: AttackDie(StatSys *、INT):ただし、コンパイラは次のようであるAttackDie::AttackDie(StatSys * LocalSystem, int Type)
エラーを含む行のC2511エラーを投げていますなぜこのエラーが表示されているのか分かりません。ヘッダーとソースを確認しました。両方の宣言と実装のインターフェイスが一致しているようです。誰かが私を問題に導くことができますか?
コードサンプル
Dice.cpp
#include <string>
#include <fstream>
#include <sstream>
#include <iostream>
#include <Dice.h>
#include <StatisticsSystem.h>
using namespace std;
AttackDie::AttackDie(StatSys * LocalSystem, int Type)
{
DataIntegrity = true;
if (Type > -1)
{
switch (Type)
{
case 0:
DieType = "Red";
DieClass = "Damage";
break;
case 1:
DieType = "Green";
DieClass = "Balanced";
break;
case 2:
DieType = "Blue";
DieClass = "Accuracy";
break;
case 3:
DieType = "Yellow";
DieClass = "Surge";
break;
default:
cout << "Unrecognized TypeNum value (>). Initialization of key AttackDie variables failed./n";
DieType = "Error";
DieClass = "Error";
DataIntegrity = false;
}
}
else
{
cout << "Unrecognized TypeNum value (<). Initialization of key AttackDie variables failed./n";
DieType = "Error";
DieClass = "Error";
DataIntegrity = false;
}
if (DataIntegrity)
{
const int GROUP_SIZE = 3;
int Iterator = 0;
int Test[3];
bool CSVDataValid = true;
for (int OuterCounter = 0; OuterCounter <= LocalSystem->NUM_OF_SIDES - 1; OuterCounter++)
{
Test[0] = LocalSystem->AccessCSVData(Type, Iterator);
Test[1] = LocalSystem->AccessCSVData(Type, Iterator + 1);
Test[2] = LocalSystem->AccessCSVData(Type, Iterator + 2);
Iterator += GROUP_SIZE;
if (Test[0] <= -1 || Test[1] <= -1 || Test[2] <= -1)
{
CSVDataValid = false;
}
else
{
Sides[OuterCounter].Damage = Test[0];
Sides[OuterCounter].Surges = Test[1];
Sides[OuterCounter].Accuracy = Test[2];
}
}
if (!CSVDataValid)
{
cout << "Side specific parameters were not set. CSV data not valid.";
DataIntegrity = false;
}
else
{
Total = { 0, 0, 0 };
for (int SideCounter = 0; SideCounter <= 5; SideCounter++)
{
Total.Damage += Sides[SideCounter].Damage;
Total.Surges += Sides[SideCounter].Surges;
Total.Accuracy += Sides[SideCounter].Accuracy;
}
Averages.Damage = Total.Damage/LocalSystem->NUM_OF_SIDES;
Averages.Surges = Total.Surges/LocalSystem->NUM_OF_SIDES;
Averages.Accuracy = Total.Accuracy/LocalSystem->NUM_OF_SIDES;
}
}
}
Dice.h
#pragma once
#include <string>
#include <fstream>
#include <sstream>
#include <iostream>
#include <cmath>
using namespace std;
struct AttackStatAverages
{
double Damage;
double Surges;
double Accuracy;
};
struct DefenseStatAverages
{
double Blocks;
double Evades;
int Dodges;
};
class Die
{
public:
string GetDieType();
string GetDieClass();
protected:
string DieType;
string DieClass;
bool DataIntegrity;
};
class AttackDie : public Die
{
public:
AttackDie(StatSys * LocalSystem, int Type);
int GetSides(int SideNum, int Parameter);
double GetAverages(int Parameter);
int GetTotal(int Parameter);
~AttackDie();
private:
AttackStats Sides[6];
AttackStatAverages Averages;
AttackStats Total;
};
StatisticsSystem.h
#pragma once
#include <string>
#include <fstream>
#include <sstream>
#include <iostream>
#include <cmath>
#include <Dice.h>
#include <vector>
using namespace std;
struct DicePackage
{
int Mode;
int Quantity;
int NumberOfPossibilities;
bool Error;
AttackDie* AttackDice[4];
DefenseDie* DefenseDice[3];
};
class StatSys
{
friend class AttackDie;
friend class DefenseDie;
public:
StatSys();
~StatSys();
const double VERSION = 0.1;
int AccessCSVData(int Row, int Column);
private:
static const int MAX_NUM_OF_DICE = 4;
const int METHOD_ERROR_SIZE = 10;
const int NUM_OF_SIDES = 6;
const int GROUP_SIZE = 3;
const int DAMAGE = 0;
const int SURGES = 1;
const int ACCURACY = 2;
const int BLOCKS = 0;
const int EVADES = 1;
const int DODGE = 2;
const int ITERATIONS = 3;
DicePackage DiceSet;
bool CSVDataState;
bool ErrorDataState;
int CSVData[6][18];
vector<string> Errors;
vector<string> ErrorDescriptions;
int StringToInt(string Value);
void LoadCSV();
問題を再現する[MCVE]を逐語的なエラーメッセージ(*** minimal ***に重点を置く)とともに投稿してください。 –
MCVEの請求を開始する。コードが多すぎて不完全です。これを並べ替える際に私が取るスタブはコードを変更し、あなたの問題を取り除くかもしれません。 – user4581301
トピックオフ:Dice.hの障害。これは '#include 'には当てはまりません。これにより、文書化されていない余分な依存関係やDice.hを含む誰でもインクルードの順序が強制されます。 –
user4581301