Мне интересно, возможно ли получить доступ к функциям, не являющимся членами, из другого файла. То есть функция, объявленная и определенная в. cpp, а не в ее заголовке.
Я сделал короткий пример, чтобы показать, о чем я спрашиваю:
У меня очень заголовочный файл basi c с именем Shape.hpp
, который просто объявляет одну функцию, которая будет печатать слово «Квадрат»
#ifndef SHAPE_HPP
#define SHAPE_HPP
class Shape
{
public:
void printSquare();
};
#endif
В файле Shape.cpp
я определяю функцию printSquare()
, но я также объявите и определите новую функцию с именем printCircle()
#include “Shape.hpp”
#include <iostream>
void Shape::printSquare()
{
std::cout << “Square”;
}
void printCircle()
{
std::cout << “Circle”;
}
Эти файлы тривиальны, но я пытаюсь показать мой вопрос очень простым способом.
Теперь, в моем Main.cpp
file, я пытаюсь вызвать оба метода printSquare()
и printCircle()
.
#include “Shape.hpp”
int main()
{
Shape shape;
shape.printSquare();
//shape.printCircle(); <—- this will give an error because printCircle() is not visible outside of Shape.cpp
}
Есть ли способ, позволяющий моему Main.cpp
файлу использовать printCircle()
без изменить мои Shape.hpp
или Shape.cpp
файлы?
Я столкнулся с очень специфической c проблемой, когда я пишу тесты для класса, но мне нужно написать тесты для функции, не являющейся членом.