C++中类定义时,class与className之间的修饰词的作用
例如在CloudCompare源码中,有这样的定义:
class QCC_DB_LIB_API ccBBox
{
...
};
QCC_DB_LIB_API这个宏定义可以起到
- 注释的作用。
- 编译器的拓展,比如:
class _declspec(dllexport) A
{
...
};
这里class A{};是指定义一个类A。加上_declspec(dllexport),对类A的影响是什么呢:
- 要是为了方便使用,比如不这样定义,当你把这个类封装成一个动态库时,在写类库时,会写在class _declspec(dllexport) A{};并假定把这个类声明放在a.h文件中,并将这个类打包成a.dll。如果用户在使用时,他会怎么用呢?他一定要改掉你的a.h中关于类A的声明为class _declspec(import) A{};这样,才能在程序中使用你的a.dll这个动态库,再假设这个库里几十个类,如果你是用户,你会不会想去撞墙。。。。
C++中的static_cast
static_cast相当