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

Класс без свойств - C++

Восстановить пароль Регистрация
 
MrAndrey_ka
 Аватар для MrAndrey_ka
77 / 77 / 2
Регистрация: 13.05.2009
Сообщений: 536
Записей в блоге: 1
30.03.2014, 00:03     Класс без свойств #1
В с++ можно создать класс у которого нет свойств только методы. Но какой длинны будет тогда объект такого класса? Если его включить в другой класс то на что это повлияет, и как правильней обращаться к методам, через переменную или через "::"

вот пример класса:

C++
1
2
3
4
5
6
7
8
9
10
template< typename BaseType>
class strangeType{
public:
#define BufTp   Bufer<BaseType>
    typedef WCHAR L_Char;
 
    static BufTp* NumberToStr(const INT64 val, int sys);
    static BufTp* NumberToStr(const double val, int sys);
    static Bufer<BaseType>* ToBaseType(LPCWSTR pszSrc, size_t Count, UINT Code = CP_UTF8);
    };
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2014, 00:03     Класс без свойств
Посмотрите здесь:

C++ Контейнерный класс типа "Список" без использования STL
C++ В задании необходимо реализовать класс согласно указанному варианту. Предусмотреть необходимый набор методов, свойств и индексаторов в реализуемых кла
C++ Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени?
C++ Класс с деструктором без конструктора
C++ Класс без конструктора. Ошибка 1 неразрешенных внешних элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6449 / 3823 / 885
Регистрация: 30.01.2014
Сообщений: 6,618
30.03.2014, 01:06     Класс без свойств #2
Цитата Сообщение от MrAndrey_ka Посмотреть сообщение
Но какой длинны будет тогда объект такого класса?
sizeof будет как минимум 1. Это требование связано с тем, что любой объект может быть адресован (иметь адрес).

Добавлено через 2 минуты
В стандарте: 9/4
Complete objects and member subobjects of class type shall have nonzero size.
Добавлено через 9 минут
Цитата Сообщение от MrAndrey_ka Посмотреть сообщение
Если его включить в другой класс то на что это повлияет
Смотря как включать.
В 1.8/5 написано:
Base class subobjects may have zero size
Что, однако, не противоречит первой цитате. Т.к. размер результирующего класса уже будет >= 1. Есть идиома, построенная на основе этого - Empty Base Optimization.
MrAndrey_ka
 Аватар для MrAndrey_ka
77 / 77 / 2
Регистрация: 13.05.2009
Сообщений: 536
Записей в блоге: 1
01.04.2014, 13:05  [ТС]     Класс без свойств #3
Смотря как включать.
Вот так:
C++
1
2
typedef typename strangeType<Type>::L_Char L_Char;
strangeType<Type>::NumberToStr(val, sys);
хотя это даже не включение а просто использование методов этого класса
DrOffset
6449 / 3823 / 885
Регистрация: 30.01.2014
Сообщений: 6,618
01.04.2014, 14:07     Класс без свойств #4
Цитата Сообщение от MrAndrey_ka Посмотреть сообщение
хотя это даже не включение
Именно. Ответ, я думаю, ты и сам уже знаешь.
Yandex
Объявления
01.04.2014, 14:07     Класс без свойств
Ответ Создать тему
Опции темы

Текущее время: 23:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru