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

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте. Есть класс "матрица" нужно задать константные матрицы такие как 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...

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

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

Указатели на константные объекты
Нельзя создать неконстантный указатель на константный объект по понятным причинам, но имеем такой...

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как в цикле обойти все поля объекта в JavaScript
bytestream 28.01.2025
Объекты в JavaScript представляют собой фундаментальные структуры данных, которые позволяют хранить и организовывать связанную информацию в виде пар ключ-значение. Каждый объект можно представить как. . .
Как выбрать строки в DataFrame по значению столбца в Pandas
bytestream 28.01.2025
В области анализа данных библиотека Pandas стала незаменимым инструментом для работы с табличными данными в Python. Эта мощная библиотека предоставляет множество функций для эффективной обработки и. . .
Как сделать перенос строки в Bash
bytestream 28.01.2025
При работе с командной оболочкой Bash разработчики часто сталкиваются с необходимостью форматирования текстового вывода, где ключевую роль играет правильное управление переносами строк. Умение. . .
Поиск подстроки в строке с помощью Bash
bytestream 28.01.2025
Поиск подстроки в строке является одной из важных задач в программировании и обработке текстов. Применение такого поиска можно найти в самых разных областях, от анализа данных до разработки. . .
[golang] 169. Majority Element
alhaos 28.01.2025
Тут надо вернуть "мажористый" элемент который встречается в слайсе больше чем в половине случаев. По условиям задачи во входных данных такой элемент обязан присутствовать. / / . . .
Когда лучше использовать LinkedList вместо ArrayList в Java
bytestream 28.01.2025
При разработке Java-приложений выбор правильной структуры данных играет ключевую роль в обеспечении эффективности и производительности программы. ArrayList и LinkedList являются двумя. . .
Какой ответ HTTP лучше использовать: 403 Forbidden или 401 Unauthorized, когда недостаточно прав
bytestream 28.01.2025
В современной веб-разработке правильная обработка ошибок и точное информирование клиентов о статусе их запросов играют критическую роль в создании надежных и безопасных приложений. Особое внимание. . .
Как получить список всех файлов коммита в Git
bytestream 28.01.2025
Система контроля версий Git представляет собой мощный инструмент для управления изменениями в программном коде и других файлах проекта. В основе работы Git лежит концепция коммитов - снимков. . .
Как записать только часть изменений файла в Git
bytestream 28.01.2025
В процессе разработки программного обеспечения часто возникает необходимость сохранить только определенные изменения из множества внесенных правок в файлах. Система контроля версий Git предоставляет. . .
[golang] 80. Remove Duplicates from Sorted Array II
alhaos 28.01.2025
В предоставленном упорядоченном по возрастанию целочисленном слайсе, оставить уникальные элементы полюс один возможный дубликат. Вернуть количество таких элементов. / / . . .
Что такое внедрение зависимостей и для чего оно применяется
bytestream 27.01.2025
В современной разработке программного обеспечения одной из ключевых проблем является управление зависимостями между различными компонентами системы. Внедрение зависимостей (Dependency Injection, DI). . .
Как установить cellpadding и cellspacing в CSS
bytestream 27.01.2025
При создании веб-страниц с табличными данными разработчики часто сталкиваются с необходимостью правильного оформления внутренних и внешних отступов в таблицах. В традиционной разметке HTML для этих. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru