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

Код. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ проверка на пустоту строки http://www.cyberforum.ru/cpp-beginners/thread281500.html
подскажите как сделать чтобы проверялось еще одно условие if((ff==' ') || (ff=='')) то есть надо чтобы проверялось заполнена строка или нет в противном случае заполнить её _ const rt=100; char ggh(char ff) { cin.sync(); cin.getline(ff, 100); for(int z33=0;z33<rt;z33++) {
C++ Связывание treeview и listview Доброго времени суток!))Пишу проводник на с++ с использованием winapi,создал отдельно treeview и listview,как их теперь связать?Заранее спасибо)) http://www.cyberforum.ru/cpp-beginners/thread281496.html
Линейная интерполяция в с++ C++
Помогите пожалуйста...не могу разобраться с двумя ошибками и программа выводит полный бред... Задача такова:найти значение функции в заданных точках(t1,t2,t3)для зависимостей x,y и x13,y13 рез-ты вывести на экран и записать в файл #include <cstdlib> #include <iostream> #include <fstream> #include <iomanip>
C++ что не так делаю?!
почему не правильно! помогите! #define SIZE 4 #include<iostream.h> int main() { int matrix; for (int i=0; i<0; i++) for(int j=0; j<0; j++) {
C++ Квантовый баг http://www.cyberforum.ru/cpp-beginners/thread281455.html
Нет, это не баг в программе для квантового компьютера. Это баг в программе для внешнего устройства. Блуждающий, прячущийся баг: при определённых условиях программа вылетает (наверное при разыменовании нулевого указателя или при обращении к несуществующей памяти) - самое классное в том, что как только начинаешь его искать - он сразу перестаёт появляться. Видимо это связано со стеком: добавляю...
C++ Рекурсивная, нерекурсивная и in-line функции НОД Написать программу, наибольший общий делитель нескольких чисел, содержащую не менее трех функций в разных файлах .c (.cpp), и три варианта определения функций:  нерекурсивная  рекурсивная  inline подробнее

Показать сообщение отдельно
Maksim_27_10
1 / 1 / 0
Регистрация: 05.11.2009
Сообщений: 23
23.04.2011, 08:26  [ТС]     Код.
Я хотел обсудить код, следовательно второе. В программировании я не новичок, но любитель, а написал в раздел для новичков, так как счёл нужным, наиболее подходящим, соответствующим теме именно этот раздел.

Тогда скину сюда. У меня просьба: погоняйте и повылавливайте ошибки(я не нашёл ни одной) и скажите своё мнение. Здесь преобразованная мной немного концепция дескриптора C++.
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
// Beispiel.cpp
// Подключить шаблонный класс CT_Handle.
 
class C_Test
{ 
  public :
  C_Test( )                                    
  { 
    std::cout << "Create." << std::endl;
  }
 
  C_Test( const C_Test &a )                    
  { 
    std::cout << "Copy." << std::endl;
  }
 
  const C_Test& operator = ( const C_Test &b ) 
  {
    std::cout << "Appropriate." << std::endl;
  }
 
  virtual ~C_Test( )                           
  { 
    std::cout << "Destroy." << std::endl;
  }
 
  void Member_Of_C_Test_( ) { }
};
 
void Fn_1( CT_Handle< C_Test > handle )
{
  *handle;
  handle->Member_Of_C_Test_( );
}
 
void Beispiel( )
{
  CT_Handle< C_Test > handle_1( false ); // true. Разницы нет.
  CT_Handle< C_Test > handle_2;
 
  handle_2 = handle_1;
  Fn_1( handle_2 );
}
 
// CT_Handle.h
#ifndef __CT_HANDLE_22_04_2011_7eGI7I0M8u8D_mfgYBME10gGy82__
  #define __CT_HANDLE_22_04_2011_7eGI7I0M8u8D_mfgYBME10gGy82__
 
#include <iostream>
 
template< typename Type >
class CT_Pointer
{
  public :
    CT_Pointer( );
    //CT_Leader_Pointer( const CT_Leader_Pointer &a );
    //const CT_Leader_Pointer& operator = ( const CT_Leader_Pointer &b );
    ~CT_Pointer( );
 
  public :
    Type * Get_Pointer_( );
    void Addition_Reference_( );
    bool Release_Reference_( );
    unsigned int Get_Count_( );
 
  private :
    unsigned int count_;
    Type         *pointer_;
};
 
template < typename Type >
inline CT_Pointer< Type >::CT_Pointer( )
{
  this->pointer_ = new Type( );
  this->count_   = 1;
 
  std::cout << "CT_Pointer Create." << std::endl;
}
 
template < typename Type >
inline CT_Pointer< Type >::~CT_Pointer( )
{
  delete this->pointer_;
 
  std::cout << "CT_Pointer Destroy." << std::endl;
}
//=============================================================================
 
template < typename Type >
inline Type * CT_Pointer< Type >::Get_Pointer_( )
{
  return( this->pointer_ );
}
 
template < typename Type >
inline void CT_Pointer< Type >::Addition_Reference_( )
{
  ++this->count_;
}
 
template < typename Type >
inline bool CT_Pointer< Type >::Release_Reference_( )
{
  bool result = false;
 
  --this->count_;
 
  if( this->count_ == 0 )
  {
    delete this->pointer_;
    this->pointer_ = NULL;
    result         = true;
  }
 
  return( result );
}
 
template < typename Type >
inline unsigned int CT_Pointer< Type >::Get_Count_( )
{
  return( this->count_ );
}
/******************************************************************************
  *                                                                         *  
  *                                                                         *
  *                                                                         *
  *                                                                         *
  *                                                                         *
******************************************************************************/
template < typename Type >
class CT_Handle
{
  public :
    CT_Handle( );                                                              // Указатель вникуда.
    CT_Handle( bool b );                                                       // Создаёт объект.
    CT_Handle( const CT_Handle &a );                                           // Увеличивает количество ссылок.
    const CT_Handle& operator = ( const CT_Handle &b );                        // По ситуации.
    ~CT_Handle( );
 
  public :
    operator Type    * ( ) { return( this->pointer_->Get_Pointer_( ) ); }
    Type * operator -> ( ) { return( this->pointer_->Get_Pointer_( ) ); }
 
  public :
    int Get_Count_( );
 
  private :
    CT_Pointer< Type > *pointer_;
};
 
template < typename Type >
inline CT_Handle< Type >::CT_Handle( )
{
  this->pointer_ = NULL;
}
 
template < typename Type >
inline CT_Handle< Type >::CT_Handle( bool b )
{
  this->pointer_ = new CT_Pointer< Type >( );
}
 
template < typename Type >
inline CT_Handle< Type >::CT_Handle( const CT_Handle &a )
{
  this->pointer_ = a.pointer_;
 
  if( this->pointer_ != NULL )
    this->pointer_->Addition_Reference_( );
}
 
template < typename Type > inline const CT_Handle< Type >& 
CT_Handle< Type >::operator = ( const CT_Handle< Type > &b )
{
  if( this->pointer_ == NULL )
  {
    if( b.pointer_ != NULL )
      b.pointer_->Addition_Reference_( );
  }
  else
  {
    if( this->pointer_ != b.pointer_ )
    {
      if( b.pointer_ != NULL )
        b.pointer_->Addition_Reference_( );
      
      if( this->pointer_->Release_Reference_( ) )
        delete this->pointer_;
    }
  }
 
  this->pointer_ = b.pointer_;
 
  return( *this );
}
 
template < typename Type >
inline CT_Handle< Type >::~CT_Handle( )
{
  if( this->pointer_ != NULL )
    if( this->pointer_->Release_Reference_( ) )
      delete this->pointer_;   
}
//=============================================================================
 
template < typename Type >
inline int CT_Handle< Type >::Get_Count_( )
{
  if( this->pointer_ == NULL )
    return( -1 );
  else
    return( int(this->pointer_->Get_Count_( )) );
}
//=============================================================================
 
#endif
 
/*
ТЕСТОВАЯ ВЕРСИЯ.
 
Дата создания: 22.04.2011.
Дата исправлений: нет.
Описание исправлений: нет.
Автор: Максим Владимирович Ковалёв.
*/
 
Текущее время: 13:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru