Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5

Константные статические объекты класса.

29.12.2010, 17:06. Показов 2194. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Есть класс "матрица" нужно задать константные матрицы такие как E - единичная матрица и т.д., как это сделать?
Здесь typedef и include
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <map>
#include <set>
#include <algorithm>
#include <limits>
#include <iomanip>
#include <ctime>
#include <cmath>
 
using namespace std;
 
typedef std::vector<int> VI;
typedef std::vector<VI> VVI;
typedef std::pair<int,int> PII;
typedef std::pair<double,double> PDD;
 
typedef long long LL;
 
#define FOR(i,a,b) for (int i(a), _n(b); i < _n; ++i)
#define MIN(a,b) ( (a) < (b) ? a : b )
#define MAX(a,b) ( (a) > (b) ? a : b )
#define ABS(a) ( (a) < 0 ? -(a) : a )
#define ALL(a) a.begin(), a.end()
#define MP(a,b) make_pair(a,b)
 
const LL base = 1000*1000*1000;
 
VI operator + ( const VI &a, const VI &b ) {
    VI res = a;
    for( int i = 0, carry = 0; i < max( a.size(), b.size() ) || carry; ++i ) {
        if ( i == res.size() ) res.push_back( 0 );
        res[ i ] = ( i >= a.size() ? 0 : a[ i ] ) + ( i >= b.size() ? 0 : b[ i ] ) + carry;
        carry = res[ i ] / base;
        res[ i ] %= base;
    }
    return res;
}
 
VI operator *(const VI &a, const VI &b)
{
    VI res(a.size() + b.size());
    for(int i = 0, carry = 0; i < a.size(); ++i)
        for(int j = 0; j < b.size() || carry; ++j)
        {
            LL cur = res[i+j] + a[i] * 1ll * (j < b.size() ? b[j] : 0) + carry;
            res[i+j] = cur % base;
            carry = cur / base;
        }
    while (!res.back() && res.size() > 1) res.pop_back();
    return res;
}
 
VI operator *= (VI &a, VI b)
{
    return a = a * b;
}
 
VI BinPow(const int &a, int n)
{
    VI res(1,1), b(1,a);
    while (n) if (n & 1) {res *= b; --n;} else {b *= b; n >>= 1;}
    return res;
}

C++
1
2
3
4
5
6
7
8
9
10
11
12
typedef std::vector<int> VI;
 
class matrix
{
    VI _11, _12, _21, _22;
public:
    // конструкторы класса
 
    static const matrix E = matrix( 1, 0, 0, 1 ); // пытался определить так, но безуспешно.
 
    // методы класса
};
Да, мне надо операции с длинными числами, поэтому не смотрите на то что элементами матрицы есть вектора.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.12.2010, 17:06
Ответы с готовыми решениями:

Как правильно объявлять статические константные объекты в классе?
В классе надо объявить статичные константные строки. Типа class A { public: static const std::string OLOLO = &quot;ololo&quot;; ...

Константные методы и объекты класса
Это необходимость, или явная подстраховка того, что бы объект (константный) работал с себе подобными методами класса ?

Константные объекты
#include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; class CTest { public: int A,B; CTest(int Aval,int...

1
 Аватар для Минич
67 / 67 / 7
Регистрация: 26.11.2010
Сообщений: 123
29.12.2010, 20:05
Статические данные-члены класса нельзя инициализировать в определении класса, только в нее его
C++
1
<тип> <имя класса>::<статическая переменная> = <значение>;
И еще, элементы структуры (класса) могут быть любого любого типа, за исключением самого типа структуры(класса), внутри которой они определены. Вы можете включить в структуру указатель на переменную типа структуры (класса)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.12.2010, 20:05
Помогаю со студенческими работами здесь

Указатели на константные объекты
Нельзя создать неконстантный указатель на константный объект по понятным причинам, но имеем такой код: typedef char* pStr; int...

Статические объекты
Статические объекты имеют область действия файл. Тобиш если я в одном файле определю глобальный статический объект, подключу другой файл...

Константные поля класса
Такой вопрос, как инициализировать константные поля класса? Работают конструкции вида obj():t(0){}; который используется в примере ниже. А...

Статические и динамические объекты
Используя объекты, классы, конструкторы и деструкторы необходимо разработать программу по следующим заданиям. Создать динамический массив...

Константные и не константные ссылки. Приведения типов. Нужно уточнение
Не очень понимаю в чем различие (2,3 строчки). int x = 10; double &amp;y = x; const double &amp;y = x; Почему для не...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru