Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/19: Рейтинг темы: голосов - 19, средняя оценка - 4.79
0 / 0 / 1
Регистрация: 31.10.2010
Сообщений: 45

Класс Rectangle совпадает с функцией Rectangle

05.11.2010, 21:14. Показов 3682. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу свой класс Rectangle, который при отрисовки использует функцию Rectangle из GDI. Возникает ошибка из-за того, что имена одинаковые. Но менять имя своего класса я, естественно, не хочу... Как решить противоречие?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.11.2010, 21:14
Ответы с готовыми решениями:

Создать абстрактный базовый класс Figure с виртуальной функцией Периметр. Создать производные классы Rectangle
Создать абстрактный базовый класс Figure с виртуальной функцией -периметр.Создать производные классы Rectangle, Circle,Triangle,Rhomb в...

Класс Point и Rectangle
*.h : class Point { public: Point(int m_x1, int m_y1); ~Point(); void InputPoint(int m_x1, int m_y1); private: ...

Класс Rectangle (прямоугольник)
друзья , у меня экзамен . а я не бум бум в c++ . помогите кто сможет Создать класс Rectangle (прямоугольник). Класс имеет атрибуты...

4
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
05.11.2010, 22:04
Разрешением области видимости.
C++
1
2
3
4
5
6
void Rectangle::SomeDraw( ... параметры ... )
{
    //..... где-то так:
    BOOL result = ::Rectangle(hDC, x0, y0, x1, y1);
    // ....
}
0
0 / 0 / 1
Регистрация: 31.10.2010
Сообщений: 45
06.11.2010, 05:24  [ТС]
Потом, когда я вызываю свой класс

C++
1
Rectangle *rct = new Rectangle();
выдаёт ошибку. Думает, что Rectangle - это GDI функция. Что делать?
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
06.11.2010, 05:51
sofen,
C++
1
Rectangle *rct=new Rectangle::Rectangle();
Мб прокатит. Хотя нет. Скорее всего компиль пошлет.

Но точно прокатит такой финт ушами.
Завернуть класс в namespace и явным указанием namespace-а или с помощью директивы using мутить все что нужно. Тогда функция Rectangle должна будет вызываться так:
::Rectangle(параметры)

Добавлено через 11 минут
Т.е.

Так - он будет писать ошибку.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <vector>
 
using namespace std;
 
class vector
{
public:
    vector():x(0)
    {
    }
    void do_smth()
    {
        std::cout<<x<<'\n';
    }
    int x;
};
 
int main()
{
    vector* l=new vector();
    l->do_smth();
    return 0;
}
А так - нет.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <vector>
 
using namespace std;
 
namespace mvec
{
    class vector
    {
    public:
        vector():x(0)
        {
        }
        void do_smth()
        {
            std::cout<<x<<'\n';
        }
        int x;
    };
}
 
int main()
{
    mvec::vector* l=new mvec::vector();
    l->do_smth();
    return 0;
}
И так тоже нет.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <vector>
 
using namespace std;
 
namespace mvec
{
    class vector
    {
    public:
        vector():x(0)
        {
        }
        void do_smth()
        {
            std::cout<<x<<'\n';
        }
        int x;
    };
}
 
int main()
{
    using mvec::vector;
    vector* l=new vector();
    l->do_smth();
    return 0;
}
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
06.11.2010, 12:38
sofen, пространтсва имен решат проблему:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
void Bar() {
  std::cout << "bar" << std::endl;
}
 
namespace Foo {
  class Bar {
  public:
    Bar() {
      ::Bar();
    }
  };
}
 
int main() {
  Foo::Bar* bar = new Foo::Bar();
  return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.11.2010, 12:38
Помогаю со студенческими работами здесь

Реализовать класс Rectangle
Реализовать класс Rectangle. Класс должен хранить координаты, а так же длину и ширину прямоугольника. Предусмотреть инициализацию данного...

Составить класс Rectangle
Здравствуйте. Я хочу попросить чтобы вы составили класс с прототипами функций (код функций хочу написать сам), и оставили комментарии к...

Класс Rectangle графика
Добрый вечер, с графикой в С++ ни разу не работал, поэтому прошу писать как можно понятнее Создал класс Rectangle: #include...

Создать класс Rectangle
Создать класс Rectangle, разработав следующие элементы класса: а. Поля: int a, b; б. Конструктор, позволяющий создать...

Нужно удалить класс Rectangle1 дружественный к классу Rectangle
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; using namespace std; struct Coords{ float x; float y; }; class...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru