РАЗЪЯСНЕНИЯ:
Этот проект выполняется в Visual Studio с использованием файла stdafx.h.
FText - псевдоним для строки, как установлено в файле stdafx.h:
#include <string>
using FText = std::string;
using int32 = int;
stdafx.h включен в класс View.cpp.
ОРИГИНАЛЬНЫЙ ВОПРОС:
Итак, я пытаюсь создать несколько методов печати, которые печатают строку на основе одного или двух параметров: числовой параметр, который указывает, какое сообщение печатать, и ввод, который будет использоваться в сообщении. На данный момент у меня есть три экземпляра метода «печать», как показано ниже:
///A method that prints a message
//give it a number to tell it what message to print.
void Display::print(int message)
{
switch (message)
{
case 0:
std::cout << "Welcome to Cows and Bulls, a simple word-guessing game. \n";
break;
case 1:
//(I omitted most of the messages to save space)
break;
default:
std::cout << "Something has gone horribly wrong. \n";
std::cout << "Goodbye. \n";
throw std::exception();
}
}
//messages with one int parameter
void Display::print(int message, int param)
{
switch (message)
{
case 0:
break;
default:
std::cout << "Something has gone horribly wrong. \n";
std::cout << "Goodbye. \n";
throw std::exception();
}
}
//messages with one string parameter
void Display::print(int message, FText param)
{
switch (message)
{
case 0:
break;
default:
std::cout << "Something has gone horribly wrong. \n";
std::cout << "Goodbye. \n";
throw std::exception();
}
}
Я еще не добавил никаких сообщений ко второй и третьей перегрузке, но я доберусь до этого.
Объявление класса в заголовочном файле для части представления программы выглядит следующим образом:
#pragma once
//The method that prints thing to the screen
class Display
{
public:
void print(int message);
//print a message with a parameter other than the message being selected
void print(int message, int param);
void print(int message, FText param);
};
Первые два экземпляра метода печати работают нормально, но третий (тот, у которого в качестве параметра указана строка / FText) выдает мне следующую ошибку:
"no instance of overloaded function "CowsAndBulls::Display::print" matches the specified type"
Чтобы добавить немного дополнительной ясности, код все еще компилируется, и я еще не использовал эту функцию: я получаю сообщение об ошибке в определении этой версии печати.
Я совершенно уверен, что мне просто не хватает чего-то простого, но быстрый поиск по вопросам переполнения стека не смог принести мне другую проблему с точно такими же обстоятельствами, как это (или, возможно, я просто не смог распознать другой пост как такая же проблема?)
в любом случае, любая помощь приветствуется.