关于const,extern,explicit等等标示符用于声明和定义的有关问题

关于const,extern,explicit等等标示符用于声明和定义的问题
c++里真是标示符一大堆啊,想请教一下各路大神,有哪些标示符是必须在声明和定义都加的?哪些只需要加一边?哪些只需要加定义?哪些只需要加声明?
这个在网上很不好搜啊,看书也没有系统的讲解,最多只是提一句,不全面啊。
比如const成员函数加在声明部分后,类外定义时是不是必须加?
explicit构造函数呢?
等等。。。

------解决方案--------------------
探讨

引用:

在需要的时候加上的,初学的话 这几个都先别用。


比如说我写了一个class A ca;
编码时想利用构造函数参数的隐式类型转换,结果调试时才发现是个大麻烦,还是得用explicit,这时是只用在声明处加,还是声明和类外定义都得加explicit?