Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 14.10.2013
Сообщений: 58
1

Не статическая ссылка не член должна указываться относительно заданного объекта (ООП)

27.03.2017, 16:42. Показов 1242. Ответов 1
Метки нет (Все метки)

Доброго времени суток. Собственно, возникла данная проблема: у меня есть один родительский класс (shape) и несколько дочерних. В родительском объявленная обычная функция int comparePerimeter(shape&, shape&), а также виртуальная virtual float perimetr() = 0. Эта виртуальная ф-ия определяется в каждом из дочерних. Ф-ия сравнения периметров определяется в родительском классе:
C++
1
2
3
4
5
6
7
8
9
10
int shape::comparePerimeter(shape& first, shape& second)
{
    if(first.perimetr() == second.perimetr()){
        return 0;
    }else if(first.perimetr() > second.perimetr()){
        return 1;
    }else{
        return -1;
    }
}
В основном файле проекта объекты задаются так:
C++
1
2
3
static circle fig1 = circle(...);
static ellipse fig2 = ellipse(...);
static arc fig3 = arc(...);
При попытке вызова ф-ии сравнивания периметров в основном файле:
C++
1
2
3
4
5
6
7
8
circle cc = fig1;
ellipse ee = fig2;
arc aa = fig3;
 
//В каждой из этих строк ошибка в вызове ф-ии
cout << "Circle vs Ellipse: " << shape::comparePerimeter(cc, ee) << endl;
cout << "Circle vs Arc: " << shape::comparePerimeter(cc, aa) << endl;
cout << "Ellipse vs Arc: " << shape::comparePerimeter(ee, aa) << endl
Возникает ошибка. В чём проблема? Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2017, 16:42
Ответы с готовыми решениями:

Нестатическая ссылка не член должна указываться относительно заданного объекта
Собственно проблема (пока что) в 117 и 118 строчках. Кто подскажет как её решить, тот получит от...

нестатическая ссылка не член должна указываться относительно заданного объекта
выдает очень много этих ошибок в коде. в строчках 93, 100, 102, 104, 105, 112, 118, 119, 124,...

Ошибка: нестатическая ссылка не член должна указываться относительно заданного объекта
Есть класс class Primitive_triangle { private: GLuint VAOhandles; GLuint VBOhandles; ...

нестатическая ссылка на член должна указываться относительного заданного объекта
Подскажите что не так? (ошибка в конструкторе puckMan.cpp) gameElement.h #pragma once ...

1
897 / 418 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
27.03.2017, 16:51 2
вызывать таким образом:
C++
1
shape::comparePerimeter(...)
можно только статические методы, а он у тебя, как ты сам написал НЕ статический.
(т.е. сделай его static)

или создавай объект типа shape и потом вызывай:
C++
1
2
shape myObject;
myObject.comparePerimeter(..);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2017, 16:51

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Исправить ошибку : нестатическая на член должна указываться относительно заданного объекта
Как исправить? нестатическая на член должна указываться относительно заданного объекта в строке 95...

Ссылка на член, не являющийся общим, должна быть ссылкой на объект
Подскажите пожалуйста, почему возникает такая ошибка в подобном коде: Public Class Form ...

Ссылка на член, не являющийся общим, должна быть ссылкой на объект при инициализации формы
Как это исправить? Из-за чего появляется это сообщение? Добавлено через 10 минут Подробности:...

[ООП] Ссылка на объект в контексте этого объекта
Привет! Тут столкнулся с такой ситуацией: var obj = { a: 1024, b: &quot;lorem&quot;, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.