C++笔记(基础)缺省值 函数重载(概念)名字空间域
·
缺省值
写了就替代缺省值
比如
void fun(int num = 10) {
略。。。
}int main() {
fun(7);(里面写东西了就替换掉,没写就用10)
return 0;
}
函数参数中如果其中一个有了缺省值,他右边的参数必须也有
函数重载
在参数类型\参数数量不同时,不同的函数可以有同一个函数名
(返回值不同依旧不可以)
因为c++会名字粉碎,所以可以重载函数,c却不会
因为c在代码编译函数的时候,只会把函数名前面加个‘_’不看函数其他的东西
函数模板
允许编写一个通用的函数,可以处理不同参数类型。
用法templateT add(T a, T b) {return a + b;}
使用template关键字定义一个函数模板,后面放一个模板参数列表,放在<>中
typename T 声明了一个类型参数 T 可以代表任何数据类型
函数模板在调用时,编译器会根据传递的实参类型来推断模板参数的具体类型,并生成相应的函数实例。
在编译执行过程中,比如说用到int 其实就是typedef int T;然后实行代码
名字空间域(命名空间)
使用关键字namespace来定义命名空间
访问命名空间成员:可以通过作用域解析运算符::来访问命名空间中的成员。例如:
int main() {std::cout << myNamespace::num << std::endl;myNamespace::func();return 0;}
using 声明和 using 指令:
- using 声明:using myNamespace::num; 这样可以在当前作用域中直接使用 num,而不需要每次都写 myNamespace::
- using 指令:using namespace myNamespace; 这会将整个命名空间的成员引入到当前作用域,之后在当前作用域中可以直接使用 num 和 func 等成员, 但可能会增加命名冲突的风险。
嵌套命名空间:命名空间可以嵌套,即在一个命名空间中定义另一个命名空间。
但是需要引用内部命名空间的成员时,要解析完整路径比如std::std1::num(std是最外部的命名空间)
更多推荐


所有评论(0)