|
|
|
#pragma once или #define?
|
|||
|---|---|---|---|
|
#18+
Привет всем, такой вот вопрос у меня по С++: Например, есть 2 класса: classOne.h и classTwo.h // classOne.h #include "classTwo.h" classOne { }; // main.cpp #include "classOne.h" #include "classTwo.h" int main() { return 0; } В этом случае classTwo заинклюдится 2 раза, что не очень хорошо. Для этого обычно используют либо #define либо #pragma once. Так вот если код выглядит так: // classTwo.h #pragma once class classTwo { }; Компайлер удостоверится, что данный класс присоединен только один раз, так? Или я чего-то не догоняю? И если я использую прагму, стоит ли делать что-то в этом роде: // classTwo.h #ifndef CLASSTWO_H #define CLASSTWO_H class classTwo { }; #endif ? Или это одно и то же? Прошу прощения, если сумбурно описал... Буду благодарен за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 14:41 |
|
||
|
#pragma once или #define?
|
|||
|---|---|---|---|
|
#18+
Не совсем, во первых #define будет гарантированно работать на любом компиляторе. Во вторых, недавно был забавный случай когда одинаковые h-файлы лежали в двух разных каталогах и в проекте ошибочно зацепились оба варианта. При использовании #pragma once все естественно развалилось, так как с ее точки зрения файлы разные, при использовании #ifdef все бы номано (в том смысле что скомпилялось бы). Думайте сами ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 14:52 |
|
||
|
#pragma once или #define?
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ! Так понял, безопаснее использовать #define Учту! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 15:19 |
|
||
|
#pragma once или #define?
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Во вторых, недавно был забавный случай когда одинаковые h-файлы лежали в двух разных каталогах и в проекте ошибочно зацепились оба варианта. При использовании #pragma once все естественно развалилось, так как с ее точки зрения файлы разные, при использовании #ifdef все бы номано (в том смысле что скомпилялось бы). Думайте сами ... имхо, в данном случае лучше, что бы развалилось, т.к. файлы могли "немного" различаться значением чего-либо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 15:34 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=359&tid=2031479]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 261ms |
| total: | 419ms |

| 0 / 0 |
