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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как массив разнозначных чисел превратить в массив цифр? (С++) http://www.cyberforum.ru/cpp-beginners/thread222384.html
(Я делаю на Builder 6, С++ на консоли) У меня в курсаче есть такое задание: Для введённого целого числа N определить N-ую ЦИФРУ последовательности. Последовательность составляется так: Это ЧИСЛА Фибоначчи, Последующее = сумме двух предыдущих (F = F + F) Даны F = 0, F = 1. Т.е. дальше будет так: F = F + F = 1, F=1+1=2, F=2+1=3 и т.д. будут такие ЧИСЛА:...
C++ Определить, лежит ли точка с заданными координатами внутри треугольника Как с помощью этого решить это: Определите, лежит ли точка с координатами (x0, y0) внутри треугольника, вершины которого расположены в точках (x1, y1), (x2, y2) и (x3, y3). //=======================geometry.cpp #include <math.h> #include <fstream.h> #include <iostream.h> #include "geometry.h" http://www.cyberforum.ru/cpp-beginners/thread222380.html
Два вопроса по простой программе C++
Вообщем начал изучать С++ (и из этого следует что я ничего не понимаю в программировании) В интернете скачал учебник "С++ для чайников" И там была показана первая программа: #include <stdio.h> #include <iostream.h> int main (int nNumberofArgs, char * psArgs ) { // Введите температуру в градусах цельсия int nNCelsius; cout << "Температура по цельсию: ";
C++ Удалить 0 эл-ты из одномерного массива
Подкиньте программу удаляющую из одномерного массива все 0 элементы. Заранее благодарен!
C++ Бинарное дерево http://www.cyberforum.ru/cpp-beginners/thread222343.html
Здравствуйте! Пожалуйста, помогите улучшить программу. Программа работает, только надо добавить StringGrid, куда надо выводить бинарное дерево так, чтобы оно располагалось структурировано. То есть меньший элемент левее, больший – правее, а корень находился выше и посередине. И чтобы это выглядело так в не зависимости от количества элементов. Как это представить? У меня стоит CodeGear RAD...
C++ Скроллер в консоли Здравствуйте, господа. Можно ли каким-то образом сделать так, чтобы в правой части окна консольного приложения, написанного в борланде, был скроллер? Знаю, как это сделать в VS только. Мне надо сделать именно в борланде, а не в VS сейчас. Заранее благодарю за возможные ответы. подробнее

Показать сообщение отдельно
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297

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

29.12.2010, 17:06. Просмотров 1216. Ответов 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 ); // пытался определить так, но безуспешно.
 
    // методы класса
};
Да, мне надо операции с длинными числами, поэтому не смотрите на то что элементами матрицы есть вектора.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru