Мы используем пользовательский класс изображений, написанный нашим профессором. Я могу загружать изображения, как этотКак создать переменную объекта из вызова функции?
SimpleGrayImage in("images/uni01.pgm");
Теперь у меня есть функция, которая выглядит следующим образом
SimpleGrayImage apply_mask(SimpleGrayImage &img,SimpleFloatImage &mask){
и я могу также использует методы на него, как этот apply_mask(...).show();
Но я не имею права сделайте это SimpleGrayImage img = apply_mask(...);
Я что-то пропустил или может быть, что наш профессор забыл добавить другого конструктора?
test.cpp:133:43: error: no matching function for call to ‘SimpleGrayImage::SimpleGrayImage(SimpleGrayImage)’
SimpleGrayImage img = apply_mask(in,mask);
^
test:133:43: note: candidates are:
In file included from SimpleFloatImage.h:13:0,
from aufgabe11_12_13.cpp:13:
SimpleGrayImage.h:110:2: note: SimpleGrayImage::SimpleGrayImage(const string&)
SimpleGrayImage(const std::string& filename);
^
SimpleGrayImage.h:110:2: note: no known conversion for argument 1 from ‘SimpleGrayImage’ to ‘const string& {aka const std::basic_string<char>&}’
SimpleGrayImage.h:91:2: note: SimpleGrayImage::SimpleGrayImage(SimpleGrayImage&)
SimpleGrayImage(SimpleGrayImage &img);
^
SimpleGrayImage.h:91:2: note: no known conversion for argument 1 from ‘SimpleGrayImage’ to ‘SimpleGrayImage&’
SimpleGrayImage.h:86:2: note: SimpleGrayImage::SimpleGrayImage(int, int)
SimpleGrayImage(int wid, int hig);
^
SimpleGrayImage.h:86:2: note: candidate expects 2 arguments, 1 provided
SimpleGrayImage.h:80:2: note: SimpleGrayImage::SimpleGrayImage()
SimpleGrayImage();
^
SimpleGrayImage.h:80:2: note: candidate expects 0 arguments, 1 provided
Похоже, вам нужен конструктор копирования. –
Какова полная функциональная подпись 'apply_mask'? –
Было бы полезно, если бы вы заменили '...' фактическими аргументами и покажите нам определение класса. Пока вы на нем, вы можете создать [SSCCE] (http://sscce.org). – jrok