LINUX.ORG.RU

QT и статическая функция


0

0

Определил статическую функцию и пытаюсь в ней обратится к какой-либо функции - а он треба вызова с каким-то объектом:

mainwindow.ui.h:337: cannot call member function `virtual void mainwindow::change()' without object

Подскажите как обойти это и в чём отличие static от virtual, pure virtual and nonvirtual

Thank!

anonymous

> Подскажите как обойти это и в чём отличие static от virtual, pure
> virtual and nonvirtual

static-метод принадлежит не объекту, а классу; у него нет неявного
параметра this. По этой причине, static-методы не могут вызывать не-
static методы того же класса без явного указания того объекта, для
которого они должны быть вызваны.

А вообще, достань и почитай любую книжку по плюсам, прежде чем код
писать.

int19h ★★★★
()

В статических функциях можно обращатся только к статическим полям или статическим методам.

Статическое поле - это поле одно для всех объектов. Грубо говоря ссылка на один и тот же участок памяти (хотя это не совсе так).

Поправьте меня если я не прав.

Ty3uK
()
Ответ на: комментарий от Ty3uK

Поправлять не рискну, мощей нет пока

anonymous
()
Ответ на: комментарий от anonymous

> Киньте кто-н ссылочку почитать о заявленных немного ранее virtual,
> pure virtual...

Про virtual читать здесь:

http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming

pure virtual - это так в C++ называются абстрактные методы:

http://en.wikipedia.org/wiki/Abstract_method

int19h ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.