Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
unkarjedy
3 / 3 / 0
Регистрация: 13.03.2011
Сообщений: 114
#1

Как создать псевдоним метода - C++

09.10.2012, 16:58. Просмотров 988. Ответов 15
Метки нет (Все метки)

Здравствуйте.

Интересует можно ли создать в СИ++ для класса псевдоним метода?

хочу сделать, чтобы эти две записи были равносильны

float CMatrix::determinate();
float CMatrix::det();

При чём не хочу использовать:

float CMatrix::det() {
return this->determinate();
}

Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2012, 16:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как создать псевдоним метода (C++):

Как создать псевдоним для лямбды? - C++
ПРИВЕТ. не поможете ли советом, как решить проблему: хочу дать имя классу лямбды, но чето не выходит using PREDICATE = (const...

Как задать псевдоним для указателя на структуру - C++
Подскажите. пожалуйста, можно как нибудь задать псевдоним для указателя на структуру Т.е. я пытался сделать что то вроде такого ...

Можно ли создать поток для нестатического метода класса? - C++
Можно ли создать поток для не статик метода класса? #include <windows.h> #include <stdio.h> class MYCLASS { private : int...

Можно ли создать поток для выполнения отдельного метода - C++
Здравствуйте! Подскажите как ( и возможно ли это вообще ) создать поток для отдельного метода? Имеется клас окна, в нем метод который...

Можно ли сделать 1 шаблонный псевдоним на 2 разных шаблонных класса? - C++
Например, есть шаблон работающий с числами - Number, и другой со строками - String. Задача - сделать псевдоним Tmp<?>, который определяет...

Как создать динамический массив типа string? Как создать класс такого массива? - C++
Как создать динамический массив типа string? Как создать класс такого массива? =-O Помогите, пожалуйста, очень нужна помощь!

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
09.10.2012, 17:17 #2
unkarjedy, а зачем тебе?
unkarjedy
3 / 3 / 0
Регистрация: 13.03.2011
Сообщений: 114
09.10.2012, 17:32  [ТС] #3
Для читабельности
Где-то в программе использую determinate, чтобы было читабельно, там где один раз встречается, допустим.
Там где определители встречается часто лучше было бы использовать det(); - короче
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
09.10.2012, 18:22 #4
unkarjedy, ну, можно иметь массив указателей на функции. Вообще коротко будет.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
09.10.2012, 18:24 #5
Нет, нельзя. Показанный вами способ является правильным, особенно его это сделать сразу в определении класса. Пожалуйста.
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
09.10.2012, 18:26 #6
~OhMyGodSoLong~, ну он не хочет так. каг-бэ псевдоним можно запилить через указатель на функцию.
OhMyGodSoLong
09.10.2012, 18:33
  #7

Не по теме:

Ага, приучать к исходникам ядра смолоду. matrix->matix_ops->det(matrix);

unkarjedy
3 / 3 / 0
Регистрация: 13.03.2011
Сообщений: 114
09.10.2012, 18:34  [ТС] #8
не не... указатель на функцию - тоже не то. Просто в некоторых языках есть псевдонимы... Мне было интерессно есть ли в С++ реализация похожая. Понял - нет.

Добавлено через 56 секунд
да я и забыл совсем, что если определить метод в классе - это равносильно inline...
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
09.10.2012, 21:19 #9
unkarjedy, почему не то? ты можеш вызывать ту-же функцию, только используя другое имя
unkarjedy
3 / 3 / 0
Регистрация: 13.03.2011
Сообщений: 114
09.10.2012, 21:24  [ТС] #10
Суть вопроса была - есть ли реализация псевдонимов в С++.
Раз нет то лучший способ - просто создать ещё один метод - по сути если написать

C++
1
float det() { this->determinate() }
Это будет лучше чем создавать массив указателей на функцию=)
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
09.10.2012, 23:40 #11
unkarjedy, Ну можно и не массив, а один указатель.
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
10.10.2012, 11:59 #12
Цитата Сообщение от unkarjedy Посмотреть сообщение
Там где определители встречается часто лучше было бы использовать det(); - короче
В эпоху ctrl + space по-моему вообще не актуальная проблема.
А так да, указатель можно сделать.
Или, раз уж на то пошло, то вообще через макрос, но это очень, очень некрасиво.
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
10.10.2012, 13:53 #13
Kastaneda, Ну не у всех интелсенс есть. Может он через блокнот и консоль работает?
макрос это не некрасиво, это не типобезопасно.
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
10.10.2012, 14:23 #14
Цитата Сообщение от Invader_Zim Посмотреть сообщение
макрос это не некрасиво, это не типобезопасно.
Я имел ввиду другой макрос, просто сокращающий запись, например
C++
1
#define DET ob.determinate()
безопасно, но не красиво)
unkarjedy
3 / 3 / 0
Регистрация: 13.03.2011
Сообщений: 114
10.10.2012, 15:22  [ТС] #15
В С++ #define избегают везде где возможно. +матриц много может быть если на то пошло то макрос должен быть не как вы написали а таким:

C++
1
#define (x).det(y) (x).determinate(y)
определение внутри класса:
C++
1
det() { determinate }
будет равносильно
inline определению

Добавлено через 32 секунды
это лучше будет макроса
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2012, 15:22
Привет! Вот еще темы с ответами:

Как вызвать из метода метод? - C++
Здравствуйте. Прошу Вас помочь. Как мне вызвать из метода Set метод Draw? Мне надо передать объект A в Draw (у которого есть координаты x и...

как сделать override метода - C++
пытаюсь сделать override метода в С++ классе, но не выходит. Вместо этого метод переопределяется полностью, не выполняет код родительского...

Передача метода класса в качестве параметра для метода другого класса - C++
Здравствуйте, Передо мной стоит такая задача. Необходимо разработать механизм, который бы мог прервать любую функцию, при этом абсолютна...

Класс как аргумент своего же метода - C++
В примере ниже происходит лишний (по замыслу не нужный) вызов деструктора. Вопрос в следующем: как в методе класса в качестве аргумента...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.10.2012, 15:22
Ответ Создать тему
Опции темы

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