Перегруженная функция не найдена [дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Перегруженная функция не найдена [дубликат]

Сообщение Anonymous »

Я следую примеру из книги Professional cpp 5ed, ch9.

У меня есть файл .ixx, в котором функция замены членов принимает 1 аргумент, а функция, не являющаяся членом, принимает 2.

Код: Выделить всё

export module Spreadsheet;
export import SpreadsheetCell;

export class Spreadsheet
{
public:
Spreadsheet(size_t width, size_t height);
Spreadsheet(const Spreadsheet& src);
Spreadsheet(Spreadsheet&& src) noexcept;
~Spreadsheet();

Spreadsheet& operator=(const Spreadsheet& rhs);
Spreadsheet& operator=(Spreadsheet&& rhs) noexcept;

void setCellAt(size_t x, size_t y, const SpreadsheetCell& cell);
SpreadsheetCell& getCellAt(size_t x, size_t y);

void swap(Spreadsheet& other) noexcept;

private:
void verifyCoordinate(size_t x, size_t y) const;

size_t m_width{ 0 };
size_t m_height{ 0 };
SpreadsheetCell** m_cells{ nullptr };
};

export void swap(Spreadsheet& first, Spreadsheet& second) noexcept;
Вот их реализации в файле .cpp:

Код: Выделить всё

void Spreadsheet::swap(Spreadsheet& other) noexcept
{
std::swap(m_width, other.m_width);
std::swap(m_height, other.m_height);
std::swap(m_cells, other.m_cells);
}

void swap(Spreadsheet& first, Spreadsheet& second) noexcept
{
first.swap(second);
}
В книге рекомендуется реализовать конструктор перемещения и назначение перемещения через swap, например:

Код: Выделить всё

// Move constructor
Spreadsheet::Spreadsheet(Spreadsheet&& src) noexcept
{
cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79883648/overloaded-function-is-not-found[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»