Прежде всего, ваше определение функции invertcolors()
не является функцией-членом. Несмотря на то, что вы объявили его внутри класса Image
, вы никак не связали реализацию с классом, поэтому компилятор считает ее функцией, не являющейся членом. Чтобы сделать его членом Image
, вам нужно использовать Image::invertcolors
следующим образом:
void Image::invertcolors(){
int width=TellWidth();
int height=TellHeight();
...
}
Вы получаете this
в C ++, но это указатель, поэтому вы должны использовать this->getHeight()
в C ++. Тем не менее, обратите внимание, что это избыточно в этом случае. Как новичок вы, вероятно, найдете единственное реальное применение в методе, имеющем то же имя аргумента, что и атрибут. В этом случае вам нужно будет использовать this->height = height
например. Тем не менее, обратите внимание, что здесь C ++ имеет хорошее дополнение синтаксиса. Этот код делает то же самое, что и простой установщик:
void Image::setHeight(int height): height(height) {}
Обратите внимание, что ни в Java, ни в C ++ оператор this
не является. .
, ->
и +
являются примерами операторов.