alsav22, нет, ничего он не правит, просто везет, что число положительное. Можете проверить данным кодом:
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
| class test {
public:
test() {
count++;
}
~test() {
count--;
}
static int count;
};
int test::count = 0;
class some {
public:
some( int newSize )
: size( newSize ),
ptr( new test [ size ])
{
}
private:
test *ptr;
int size;
};
int main () {
some obj( 10 ); //число объектов, которое мы хотим создать
std::cout << test::count << std::endl; //реальное число объектов, которое создалось ( если вообще создалось )
return 0;
} |
|
Тут не то что везет, принимаемый параметр операцией new - size_t, то есть беззнаковое целое. То есть, если даже int будет отрицательным, при приведении типа к size_t само собой значение становится положительным.